Skip to main content

Full text of "Linux For You Magazine Issue 77"

See other formats

Try Ubuntu 9.04 & Mandriva 2009.1 'Spring' 


ISSN 0974-1054 


VOLUME: 07 ISSUE: 4 June 2009 118 PAGES ISSUES 77 


The Oracle-Sun deal is like a galactic collisL. 
promises to shake up the global tech industry. For the 
experts" opinions on this mega acquisition, and the 
various scenarios that could emerge from it in the near 
future, turn to Page 38. 







' x' 

Published by EFY— ISO 9001:2000 Certified 








q "74470"58495"' 7 

Windows 7 vs Mandriva 

2009 Spring 1 21 


with Extensions 1 52 

Use ZFS f ilesystem 

in Linux 1 72 

Automate UNIX 

Administration with Puppet 1 68 


Targeted Policy Explained 1 78 

iPhone development 

on Linux 1 84 


Conversations for a Smarter Planet 

How we can make 

our smart systems smarter. 

The planet we live on is getting smarter. A world where 
digital intelligence can be embedded across entire systems, 
impacting everything from traffic flows to electric power to 
the way our food is grown, processed and delivered. 

But you might be surprised to learn that information 
technology is itself in need of an intelligence makeover. 
It's not a problem with the technology per se. The problem 
is how all this technology is currently configured into 
systems. The fact is, the IT systems that underpin so much 
of how the world works must become much smarter. 

How much smarter? The average commodity server 
rarely uses more than 6% of its available capacity, 
while in some organizations as many as 30% of servers 
aren't utilized at all. IT energy consumption is expected 
to double in the next five years. In some cases, nearly 
70% of companies' IT budgets can be devoted to 
managing, maintaining, securing and upgrading their 
systems rather than building new capabilities, services 
and applications. 

And consider what's coming: hundreds of billions of 
smart things -sensors, cameras, cars, shipping 
containers, intelligent appliances, RFID tags by the 
hundreds of millions - all becoming interconnected. 
This will enable new, highly flexible ways of interacting 
with customers, employees, patients and citizens from 

any device, anywhere. The resulting volume of data 
promises insight and intelligence to solve some of our 
biggest problems - but only if we can process and make 
sense of it in real time. 

Fortunately, smarter computing models are at hand. 
With "service oriented" software, companies can unlock 
business services from the underlying technology, so 
their software can be changed and reused flexibly - 
at a fraction of the cost of developing it from scratch. 
Virtualization can help companies reinvent their data 
centers, eliminating up to 70% of their servers and 80% 
of their floor space. Service management software can 
orchestrate all of these systems from one place, while 
letting IT users serve themselves, cutting administrative 
costs. Together, these new capabilities enable "cloud 
computing", a new way of looking at IT as a distributed 
capability, which can be tapped into simply and easily. 

Information technology has taken us a long way over the 
past 50 years. But seizing the opportunities before us 
will depend on more than intelligent machines. It will 
depend on spreading intelligence across our technology 
infrastructures. Let's build a smarter planet. Join us and 
see what others are thinking at 

To learn more about IBM's vision of a dynamic infrastructure, 
be a part of our Dl Virtual Forum, scheduled for June 24th. 
You can register now at 

IBM, the IBM logo and are trademarks of International Business Machines Corporation, registered in many jurisdictions worldwide. 
A current list of IBM trademarks is available on the Web at "Copyright and trademark information" at 


NetVault: Backup simplifies backup and recovery 
without compromising Functionality and Scalability 


He tvaitt&w 

NetVault: Backup provides unmatched Data Protection for all major 
variants of Linux. We are now offering you the chance to see just 
how good NetVault is at no cost. 

We provide continuous data protection (CDP) for your Linux servers 
and advanced application protection and recovery for MySQL, Post- 
greSQL, Oracle, Exchange, DB2 to name just a few. 

Permanent FREE Use Edition for Linux is available for 
download at 

NetVault is a true Linux data protection solution featuring: 

□ Online backup 

p Point and click recovery 

□ Fully automated protection and recovery support for 
Linux based applications 

1 Virtual Tape Library (VTL) with disk staging 
I SAN support with LAN free backups. 

□ Backup duplication for off-site storage of backups 

□ Support for MySQL native replication, restore to table 
level and to alternative databases or instances. 


The Power of Simplicity™ 

For more information, please contact: 
El : 
~ : +91-11-42235156 

Second Time Lucky!!! 


@Rs. 500 only 

Another reason to 

Red Hat is #1 in IT Education: 2009 IDC Marketscape Survey - 
Worldwide IT Education and Training 2009 Vendor Analysis 

Register and appear before 31st May 2009 and avail - 

• RH184 - Red Hat Enterprise Virtualization course at just Rs.1500 

• 25% discount on EX333 - Red Hat Enterprise Security: Network Services 

E called "The Crown 
I of Linux 

fications" proves an 
idual's ability to 
igure networking 
ces and security on 
vs running on 
Hat Enteprise Linux" 

only * conditions apply 


For more information visit or email at 



June 2009 • Vol.07 No. 4 • ISSN 0974-1054 


l8 Ubuntu 9.04 Review: Jackalope 
Seems to be Jaunty Enough 

21 Fight Club: Windows 7 Vs 
Mandriva 2009 Spring 

28 GYachI is Your Answer to Yahoo 

30 FOSS on Mobiles: The Magic 
Cupcake Effect 

34 FOSS on Mac: Launching Apps at 
Quicksilver Speed 

36 Oracle's Prophecy: Dodge This! 

38 Oracle s Gravity Pulls in Sun 


84 iPhone Development on Linux 

95 The AMP Factor Can Make Even 
Windows Pose as a Web Server 

106 Beagle Board, Rev C: 

High-performance Computing 
on a 3x3-Inch Board 


64 Audit Network Device 

Configurations with Nipper 

68 Puppet Show: Automating UNIX 

72 Tried ZFS on Linux? 

78 The Art of Guard— Part 3: SELinux 
Targeted Policies  




52 Enrich with 

56 Building A Server From 

Scratch — Part 5: Messaging 

60 Vim Editor Essentials 

92 Programming in Python for 

Friends and Relations — Part 14: 
A Musical Button 


Editorial, Subscriptions 
& Advertising 


D-87/1 , Okhla Industrial Area, 

Phase I, New Delhi 110020 

Phone: (Oil) 26810602, 26810603 

Fax: 26817563 



No. 9, 17th Main, 

1st Cross, HAL II Stage, 

Indiranagar, Bangalore 560008 

Ph: (080) 25260023; Fax: 25260394 



M. Nackeeran 

DBS House, 31-A, Cathedral Garden Road 
Near Palmgroove Hotel, Chennai 600034 
Ph: 044-28275191; Mobile: 09962502404 

Customer Care 



32 FreedomYug: Get Out of Office 

96 The Joy of Programming: 
Using Bitwise Operators 
Instead of Logical Operators 

98 CodeSport 

102 A Voyage to the Kernel— Part 
13: Segment 3.2, Day 12 





You Said It... 


Technology News 


Q&A Section 


Industry News 


Linux Jobs 


Tips & Tricks 


FOSS Yellow Pages 

LFY DVD: Mandriva 2009 Spring 

Mandriva Linux is suitable for a wide range of computing 
requirements— from typical desktop use, to development and server 
roles. 2009 Spring version includes an up-to-date software stack, 
including kernel 2.6.29, KDE 4.2.2, GNOME 2.26 and 3.0.1. 


Ubuntu is a community developed operating system that is perfect 
for both desktops and laptops. Whether you use it at home or at work, 
Ubuntu contains all the applications you'll ever need— from word 
processing and e-mail applications, to graphics and audio/video tools. 

Note: All articles in this issue, except for interviews, verbatim quotes, or unless otherwise explicitly mentioned, will be released under Creative Commons Attribution-Share Alike 3.0 Unported 
Licence a month after the date of publication. Refer to http://creativecommons.0rg/licenses/by-sa/3.0/ for a copy of the licence. 

Back Issues 

Kits 'n' Spares 

D-88/5, Okhla Industrial Area, 
Phase I, New Delhi 110020 
Phone: (Oil) 32975879, 26371661-2 



D.C. Mehra 
Ph: (033) 22294788 
Telefax: 22650094 
Mobile: 09432422932 


Flory D'Souza 

Ph: (022) 24950047, 24928520; Fax: 24954278 



Zakir Shaikh 

Mobile: 09372407753 



PS. Muralidharan 

Ph: 09849962660 


Exclusive News-stand 
Distributor (India) 


Arch No, 30, below Mahalaxmi Bridge, Mahalaxmi, 
Mumbai - 400034 Tel; 24942538, 24925651, 
24927383 Fax; 24950392 

Printed, published and owned by Ramesh Chopra. Printed at 
Ratna Offset, C-101, DDAShed, Okhla Industrial Area, Phase 
I, New Delhi 110020, on 28th of the previous month, and 
published from D-87/1 , Okhla Industrial Area, Phase I, New 
Delhi 1 10020. Copyright © 2009. All articles in this issue, 
except for interviews, verbatim quotes, or unless otherwise 
explicitly mentioned, will be released under under Creative 
Commons Attribution-Share Alike 3.0 Unported License 
a month after the date of publication. Refer to http:// for a copy of the 
licence. Although every effort is made to ensure accuracy, 
no responsibility whatsoever is taken for any loss due to 
publishing errors. Articles that cannot be used are returned 
to the authors if accompanied by a self-addressed and 
sufficiently stamped envelope. But no responsibility is taken 
for any loss or delay in returning the material. Disputes, if 
any, will be settled in a New Delhi court only. | LINUX FOR YOU | JUNE 2009 | 7 

Dear Readers, 

So how will Oracle's takeover of Sun 
Microsystems affect the open source world? 
That's the question we were suddenly faced 
with just as we were going to press last 
month. All we could do was speculate on 
'what's in it for us' in the OSS community 
Which is why I promised LFY readers an in- 
depth review of this mega merger in this issue. 

Swapnil Bhartiya, a senior journalist 
at EFY and a passionate proponent of 
free software, has more than delivered on 
that promise. Relentlessly pursuing global 
open source leaders for their inputs has 
ensured this story is a 'must read'. Its in- 
depth coverage will satisfy every open 
source enthusiast. Across pages 38 to 47, all 
implications of this deal have been explored, 
to give you a good insight on what's expected 
to happen to Sun's various open source 
projects, under the Oracle regime. 

The significant news of this month 
(besides Deccan Chargers winning the IPL 
trophy) is Congress coming to power at 
the centre. While we would like to refrain 
from expressing our personal views on any 
particular political party, we are certainly 
excited about the fact that there is now 
a more stable government at the centre. 
Therefore, all decisions that require strong 
political will, can now be taken. 

One of those decisions (we hope) will be to 
accelerate the adoption of open source within 
the government and public sector. Young 
leaders at the forefront and visionaries like 
Dr Manmohan Singh at the helm certainly 
add up to the right formation at the centre. 
There's another reason for hope— amongst the 
key personnel who advise the prime minister, 
we have Mr Prithviraj Chavan, who has been a 
vocal champion of open source for a very long 
time— he was talking about Linux and open 
source in Parliament even before LINUX For 
You was launched! 

In fact, there's a lot of room for 
constructive opposition here. The BJP and the 
CPI(M) can play a major role in pushing the 
government to accelerate adoption of open 
source in India— after all, both had talked 

about bringing in the 'open' wave in their 
manifestos. While they have not been granted 
the opportunity to execute their plans, they 
still have the power, and the responsibility, to 
push issues of national interest. Preventing 
the outflow of precious foreign exchange, 
promoting innovation and generating 
employment are just a few of the benefits that 
open source promises any nation. These three 
alone ought to make open source an issue of 
national interest. 


Young leaders at the 
forefront and visionaries 
like Dr Manmohan Singh 
at the helm certainly add 

Lup to the right formation 
at the centre 


There's one more reason to cheer— we are 
about to re-launch Expect it 
to go LIVE around mid-June. If you want to 
be amongst the first to get a sneak-peek, go to and drop us your e-mail ID. 
Before we go LIVE, we do plan on a 'premiere' 
for a select few. Those who register with us, 
will certainly be on that list. From what I have 
seen so far— this version rocks. But then, the 
final verdict is always yours. 

Best Wishes! 

Rahul Chopra 
Editor, LFY 

8 | JUNE 2009 | LINUX FOR YOU | 

Linux Learning Centre 

Pioneers in Training on Linux Technologies 

Trained participants from over 37 Countries in 6 Continents 

Linux OS Administration & Security Courses for Migration 

LLC102: Essentials of Linux OS 

LLC103: Linux System & Network Administration 

LLC203: Linux Advanced Administration 

LLC303: Linux System & Network Monitoring Tools 

LLC403: Qmail Server Administration 

LLC404: Postfix Server Administration 

LLC405: Linux Firewall Solutions 

LLC406: OpenLDAP Server Administration 

LLC408: Samba Server Administration 

LLC409: DNS Administration 

LLC410: Nagios - System & Network Monitoring Software 

Courses for Developers 

LLC104: Linux Internals & Programming Essentials 

LLC105: Programming with Qt 

LLC106: Device Driver Programming on Linux 

LLC107: Network Programming on Linux 

LLC108: Bash Shell Scripting Essentials 

LLC109: CVS on Linux 

LLC204: MySQL on Linux 

LLC205: Programming with PHP 

LLC206: Programming with Perl 

LLC207: Programming with Python 

LLC208: PostgreSQL on Linux 

LLC501: Programming with OpenGL 

LLC504: Linux on Embedded Systems 

RHCE Certification Training 

RH033: Red hat Linux Essentials 

RH133: Red Hat Linux System Administration 

RH253: Red Hat Linux Networking & Security Administration 

RH300/301: Red Hat Rapid Track Certification Course 

RHCSS Certification Training 
RHS333: Red Hat Enterprise Security: Network Services 
RH423: Red Hat Enterprise Directory Services & Authentication 
RHS429: Red Hat Enterprise SELinux Policy Administration 

RHCA Course Schedule 

RHS333: 6 June; Rh423: 13 June 

RH401: 30 June; RH442: 28 July 

RH436: 25 August 2009 

RHCSS/RHCA Exam Dates 

EX423: 25 June; EX429: 26 June 

RH301 from 8, 15 a 22 June '09 
RHCE Exam in Bangalore 26 June 2009 

LLC504: Linux on Embedded Systems 
4 Day Fast Track Course 
starting on 13 June 2009 

LLC410: Nagios System 6t Network 

Monitoring System ■ Training from 13 June '09 

Linux SuDoort & Solutions 

Installation, Setup and Support Solutions 
for RedHat, Ubuntu, SUSE, CentOS Servers 

For more info log on to: 
Call: 9845057731 / 9343780054 


RED HAT Training Partner 
RHCE & RHCSS Exam Centre 



Linux Learning Centre Private Limited 

Registered Office & Corporate Training Centre 

# 635, 6th Main Road, (Adj.. Bank of India) Hanumanthnagar, Bangalore 560019 

Tel: +91.80.22428538 / 26600839 / 26610999 TelFax: +91.80.26600839 

Cell: 9845057731 / 9343780054 Email: 

LLC Satellite Centre - Bangalore 

#1291, 24th Cross, 30th Main, 

BSK II Stage, Bangalore 560070 

Tel: +91.80.26712928 

Linux is the registered trademark of Linus Torvalds. All other brand names are trademarks of their respective owners 

You said it. . . 

Announcement: Hi folks! We've 
been getting some requests from our 
readers to bundle x86-64 OS instead 
of the regular x86 OS that we bundle 
every month. The reason we have 
only been bundling 32-bit OSs is 
because we believe a 64-bit OS may 
not support the processors that 
many of our readers use. However, 
do consider this as an open call for 
votes on whether you, the readers, 
would prefer a 32-bit OS or a 64-bit 
OS. Please send us your feedback at 
Ifyedit at efyindia dot com by July 
20, 2009. 

I picked up a copy of LFY 
April 2009 after quite a few 
years (definitely more than 12 
months and it was only because I 
wanted to grab the Debian 5 Lenny 
DVD for personal use), and I must 
say I was delighted to see the 
magazine has improved by leaps 
and bounds. The last time I read 
LFY, I saw definite potential in 
what seemed to be a budding 
magazine trying to create a niche 
for itself in the Linux/Open Source 
world. Now, you guys pretty much 
seem to be at the top and you 
definitely rock. 

I can't seem to recollect the 
last time a magazine that I picked 
up took me over two days to 
read and complete (and believe 
me— I practically read every 
article and every contribution in 
there). The entire content kept me 
captivated and thrilled. I would 
like to consider myself a geek who 
experiments with technology just 
to be aware of the developments 
around the world. My day-time job 
is that of a banker, wherein I rarely, 
if ever, deal with anything remotely 
technical in nature. 

If time does permit, I would 
seriously consider a long-term 
subscription with your magazine— 
with the superb quality of content 

that you guys now put out. I just 
wanted to let you guys know that 
please continue doing the excellent 
work— it's been a pleasure to see 
that quality magazines still do get 

— Somani Kisalay, kisalay. 
somani@citi. com 

ED: Thanks for your encouraging 
feedback. We hope you 11 continue 
to send us feedback on the content 
of the magazine— things you like, 
you dislike, and what you think is 

t-^\ The editorial of the May 
-^ 2009 issue left me a bit 
worried. Sun's acquisition by Oracle 
is indeed big news, and that is part 
of the cause for concern. While 
companies developing open source 
software are definitely helping the 
ecosystem' because of their 
powerful support, I believe we 
should not lose sight of the main 
idea behind free software. Free 
software was nothing new at the 
time [Richard] Stallman started the 
movement, but the movement was 
required because companies were 
commercialising software, 
threatening the programming 
culture and its free sharing of source 
code. The members and supporters 
of the free software community have 
always been mostly people who care 
deeply about the joy of 
programming and defending their 

Today, when free software 
has reached such heights, it is 
essential for the community to 
ensure that commercial companies 
do not topple it over. And for 
that, the foundation needs to be 
strong. Licences like the GPL do 
protect against the 'locking up' of 
software, but we need to ensure 
that the software we create gets 
this protection by actually using 

such licences. It would be a pity 
and a shame if commercialisation 
gets the better of the free software 

— Saurav Sengupta, 

<Oj I have been a subscriber of 
-^ LFY right from its first issue 
and have tried various flavours of 
Linux, thanks to your magazine. 
Right after installation, I always first 
try the card games (to see whether 
there is any improvement) and 
multimedia support. 

I always felt that PCLinuxOS is 
the best for newcomers and the one 
in the current issue is even better. 
Windows partitions are mounted 
automatically, network cards are 
installed without a problem and, 
unlike other distros, multimedia 
support is comprehensve. FLV 
videos in Windows partitions are 
played without any need for other 
codecs (although the lip sync 
feature was missing). I wonder why 
VLC player is not included. Also, the 
UI of the card game has improved 
tremendously. Of course, LAN 
modems are not supported and 
I gather that it is a pain to install 
drivers for them. 

On an entirely different track, 
I shall be happy to get some 
feedback about the portal. 
Recently, I applied for a second 
BSNL connection. The instrument 
was delivered the next day and 
the number allotted within a day 
after that. However, they took more 
than a week to allot the broadband 
password. On connecting, I faced 
a peculiar problem— a few sites 
such as BSNL's own 
as well as fail to 
open. (ICICI sites open at times 
after a long delay.) GMail also has 
some problem. I suppose that the 
BSNL portal must be a new one, 
and any help from the readers on 
how to get around the problems 

10 | JUNE 2009 | LINUX FOR YOU | 

You said it. . . 

I've mentioned here is welcome. 
Meanwhile, I shall try to take the 
help of BSNL engineers. I have tried 
out two modems (the BT wireless 
modem/router and Billion) with the 
same result. 

— V.S. Nagasayanam, 
vsayanam@gmail. com 

ED: Thanks a lot for the valuable 
feedback. As for BSNL— we do not have 
much experience on this front, and 
thus were sharing your e-mail with 
our readers. If any of you also use the 
same Internet service, kindly send Mr 
Nagasayanam your feedback. 

I have been a subscriber of 
LFY since August 2003. It is 
very heartening to see the magazine 
grow, especially in the mix of 
articles that try to address the 
newbie, administration, and 
developer reader segment. Kudos to 
you and your team for bringing out 
a great edition every month. 

I would like to save all the 
issues but physically, it is not 
possible. Therefore, can I request 
you to create an archive of all the 
past issues and release it on a CD 
(HTML), ASAP. PCQuest has been 
doing this with its past issues, and 
periodically includes it with the 
CD/DVD that accompanies the 
magazine. I think it's time for LFY 
to do the same and I sincerely hope 
you will agree with that. 

— Arun Khan 

ED: Thank you for your 
compliments. It's a great feeling to 
hear that we're still able to cater to 
the needs of a wide audience. 

As for the PDF archives in our 
CD, we're in the final phase of 
deploying LinuxForU. com, where 
the team is busy in bug-squashing 
WordPress— we're planning to 
launch it by June 10th. Once that 
is done, we'll have the archives of 
the older issues available steadily 

over the coming months. But yes, we 
agree: PDF archives would be cool 
too. Maybe we can do that once a 
year— with the January issue? 

Arun replies: Great to hear 
about your archive plans. One 
suggestion: unlike other magazines, 
just keep the "current" and perhaps 
"current - 1" issues offline and the 
rest available on the Web. In the 
same vein, if you publish an e- 
magazine version (PDF) without 
the CD, perhaps at a reduced 
subscription rate, you can attract 
international subscribers. LFY can 
go global and attract authors from 
other parts of the world. Please give 
it some serious thought. 

I had suggested this to the Linux 
Journal (US) when I moved back to 
India, but they have said nothing 
about it yet. Getting a bound copy 
delivered to India is untimely and 
cost prohibitive. 

I agree with the idea of PDF 
archives of previous years in the 
January issue. You can charge for 
the cost of the CD— serious OS 
enthusiasts would not mind paying. 
Linux Journal is doing this. 

ED: The plan is to keep only 
the current issue unavailable. So, 
everything from the "current -1 " 
will be online. When we launch the 
website in June, initially it'll have only 
the issues from 2009. Steadily we will 
upload the older issues as well. 

I just went through the article, 
"Doc Till You Drop" in LFY, 
May 2009. 1 have a couple of 
suggestions. It may be difficult to 
knock on the doors of so many 
government offices. But as you know, 
80 per cent of the bureaucrats read 
newspapers and magazines, and 
these media surely have columns on 
computers, IT, the latest gizmos, etc, 
which are widely read. 

The people in government 
get swayed towards proprietary 
products because 99 per cent of 
the articles are only on Windows. 
Please write to all the editors 
and slaves of Bill Gates to stop 
covering only Windows. Why can't 
every second article be on FOSS, 
in public interest? 

Second, Linux developers need 
to look at video, video-based IM 
and chat, and MCU-based video 
on Linux clients. As long as you 
do not have these features on 
Linux, switching to this platform 
is going to be tough. Since most 
Linux geeks do not take video 
very seriously, this attitude 
benefits Windows. Why can't 
Yahoo base its Messenger only on 
Linux? Why was Google Talk and 
Google Earth released only for 
Windows first, and on Linux only 
a year later? 

Linux is being given second- 
grade treatment even by Linux 
geeks, and all those companies 
who make money from it. 

Though you ended your article 
with "...knock, knock, knocking 
on heaven's door," I feel like 
"knocking on Linux geeks' doors..." 

—Mk Yadava IPS, MD, 

Niyam replies: Thank you for 
writing in and sharing your insights 
and suggestions on the OpenOffice. 
org-for-India debate. Please see my 
FreedomYug column for June 2009 
on how we all may take it further. 

Please send your comments or suggestions to: 
The Editor 

D-87/1 , Okhla Industrial Area, 

Phase I, New Delhi 110020 

Phone: 011-26810601/02/03 


Website: | LINUX FOR YOU | JUNE 2009 | 11 

Technology News 

OOo 3.1 now more than a match for MS Office 

It's been less than a year since Sun Microsystems' hit its major 3.0 
release, but the next version of the open source, cross-platform productivity suite is 
already available, complete with a slew of feature enhancements and performance 

tweaks. The first thing you'll notice about 
the new OpenOffice 3.1 is that it just looks 
better— the program menus, letters and images 
it displays are sharper and clearer. This notable 
enhancement is thanks to the improved 
rendering of on-screen graphics through 
anti-aliasing, an advance that applies to the 
entire suite, but that should prove particularly 
pleasing to users of the product's presentation 
component, Impress. 

A few improvements that OOo has done 
on the graphics front are anti-aliased drawings, solid dragging (now you can see 
the transparent image while dragging, and not just an outline) and also translucent 
selections in Writer. 

Feature wise, 3.1 matches up fairly well with Microsoft's Office. 
In addition, the team has done a lot of work to make its suite 
compatible with MS Office's traditional binary and newer OOXML file formats. 
With the latest option to 'Reply to Notes', improved support for bi-directional scripts 
and the introduction of grammar checking, Writer has evolved into one of the best 
and most advanced open source word processors in the market. 

Other interesting features that you will surely look forward to are an 
introduction of Macros and syntax highlighting in Base, 'Formula hot hints' in Calc 
and also a very notable performance boost to every application. Do 
download the office suite and let us know if youd like to review it for us! 

Samsung unveils Android smartphone 

Samsung Electronics has launched the 17500— its first Android-powered mobile 

phone. The handset features a 3.2-inch (8.1 cm) Active Matrix OLED (AMOLED) 

touchscreen and 7.2MBps HSDPA and Wi-Fi connectivity, giving users access to 

Google Mobile services and full Web browsing at blazing 

speeds. It offers users access to the full suite of Google services, 

including Google Search, Google Maps, Gmail, YouTube, 

Google Calendar and Google Talk. The integrated GPS receiver 

enables the use of Google Maps' features, such as My Location, 

Google Latitude, Street View, local search and detailed route 

description. Besides these, hundreds of other applications are 

available in the Android Market. 

The Samsung 17500 comes with the latest multimedia 
features. Along with supporting a 5-megapixel camera and 
various multimedia codec formats, the 17500 also provides a 
long enough battery life (1500mAh) and a memory capacity of 
up to 40 GB (internal memory: 8GB, external memory, that's 
upgradeable up to 32GB) to enjoy all the applications and multimedia content. The 
phone also boasts of a slim and compact design, being just 11.9mm thin. It also 
includes a 3.5mm headphone socket. 

The Samsung 17500 will be available in major European countries from June 
2009. The company has not revealed pricing for the device. 

Xen 3.4 promises 
reliability & availability has released a new version 
of Xen hypervisor. Xen 3.4 hypervisor 
offers significant enhancements in 
the following areas: 

■ Xen 3.4 contains the initial XCI 
code release providing a base client 
hypervisor for the community to 
extend and improve. 

■ The new version delivers a 
collection of features designed 
to avoid and detect system 
failures, provide maximum 
uptime by isolating system 
faults, and provide system 
failure notices to administrators 
to properly service the 

■ Xen 3.4 improves the power 
saving features with a host 
of new algorithms to better 
manage the processor, 
including schedulers and 
timers optimised for peak 
power savings. 

Xen 3.4 is currently available 
via free download for developers 
at the website: www.xen. 
org/ download. 

Qt open for community 

Nokia has announced that the 
Qt source code repositories 
are open to the public and 
that Qt developers now can 
help guide and shape the 
future development of Qt by 
contributing code, translations, 
examples, etc, to Qt and Qt- 
related projects. In order to help 
manage the contributions, Qt 
Software has launched a Web- 
based source code management 
system based on the Git 
and Gitorious open source 
projects, which is available at 

12 | JUNE 2009 | LINUX FOR YOU | 

Technology News 

Breathe in some fresh 'Air' with KDE 4.3 beta 1 

Seems like the wait for the new version of KDE4 is almost over within the KDE 
Community after the first preview of the third iteration of the KDE4 desktop, 
applications and development platform— KDE 4.3 Beta 1. The KDE team is now 
in bug-fixing mode in order to provide a smooth KDE 4.3.0 to end users in late July. 

Highlights of KDE 4.3 are: 
Integration of many new technologies, such as 
PolicyKit and Geolocation services. 
New window animation effects, a more usable run 
command pop-up and many new and improved add- 
ons in Plasma. 

Many bug-fixes and improvements across all 
applications and more integration of features 
introduced since the release of KDE4. 

KDE 4.3 will also introduce a brand new desktop 
theme dubbed Air, replacing Oxygen. According to 
KDE Pinheiro [ 
air-and-kde-43.html], 'Air is supposed to be different 
from what Oxygen is, something that tries to appeal to a user base looking for a 
more 'sexy' experience than Oxygen (yeah I know you are out there :) ), but to still 
have the capability of merging nicely with what we have now... KDE will very shortly 
become the desktop you need and not the desktop we think you need." 

Note that KDE 4.3 Beta 1 is not suitable for end users. Its sole purpose is 
gathering feedback and testing. Visit the KDE 4.3 beta 1 Info Page at 
info/4.2.85.php to get started. 

Moblin 2.0 beta for netbooks and nettops 

The Moblin steering committee has released Moblin v2.0 beta for netbooks and 
nettops for developer testing. With this release, developers can begin to experience 
and work with the source code of the visually rich, interactive user interface 
designed for Intel Atom-based netbooks. Moblin is built using GNOME Mobile 
Technologies, and supports existing Linux desktop applications. 

Moblin v2.0 features include a new, visually rich user experience, optimised for 
netbook and nettops, building on the latest FOSS graphics technologies, such as 
Clutter, DRI2, and KMS. The m_zone, acting as the 'home screen panel, provides 
instant access to your synchronised 

calendar, tasks, appointments, recently 

used files, and real-time updates from 

your friends on social networking sites. 

Besides this, aggregation of your social 

networking content provides you with 

the ability to see your social networking 

activities on one screen. There's also a 

Web browser optimised for the Moblin 2.0 

netbook user interface; a 'zoomable' media player; a user interface for connection 

management; an updated connection manager (ConnMan); and, of course, support 

for Linux desktop applications. 

According to the announcement, the Moblin images [] 
are being tested with the following platforms: Acer Aspire*One, Asus eeePC* 901, 
1000H, DeU Mini 9, MSI Wind, Lenovo S10, Samsung NC10, HP Mini 1010 and 
1 120NR (wired networking only for now). 



RHEL 4.8 released 

Red Hat has released the eighth 
update to RHEL 4. The new version 
sports improved virtualisation 
performance and scale, with 
optimised device drivers for RHEL 
4 virtual guests deployed on the 
KVM hypervisor that's supposed 
to be included in future RHEL 5 
releases, apart from virtual guest 
support for up to 256 disk devices 
(increased from 16). It also has 
improved Windows interoperability 
and filesystem support due to 
numerous Samba enhancements; 
performance improvements due 
to three new 'kernel tunables' that 
allow users to optimise application 
performance by reducing latency 
and improving utilization; and 
enhanced developer support 
with an updated GNU Compiler 
Collection that allows users to 
compile applications on RHEL 4 
with compatibility with RHEL 5. 
This helps them prepare for moving 
applications to the newer Red Hat 
releases. More details can be found 

New CUDA Toolkit 2.2 

NVIDIA has released version 2.2 
of the CUDA Toolkit and SDK 
for GPU computing featuring a 
visual profiler, improved OpenGL 
interoperability, zero-copy, a 
hardware debugger for the GPU, 
etc. The CUDA Visual Profiler is 
a graphical tool that enables the 
profiling of C applications running 
on the GPU. This latest release of 
the CUDA Visual Profiler includes 
metrics for memory transactions, 
giving developers visibility into 
one of the most important areas 
they can tune into for better 
performance. The release also 
delivers up to 2x bandwidth savings 
for video processing applications. 

14 | JUNE 2009 | LINUX FOR YOU | 

Technology News 

igm: a; 


Flock 2.5 targets Twitter and Facebook Users 

The Flock development team has released a newer version of the social Web 
browser. Flock 2.5 [] makes both sharing and discovering content 
fast and easy. To share content, you simply drag and drop URLs, photos, videos, 
text or other content you find on the Web to a friend s Twitter, Facebook, MySpace 
or other profile in Flocks People Sidebar, and it is instantly shared. Flock now also 

comes with Twitter Search 
that allows you to save all of 
your Twitter searches and keep 
them in one place, making the 
discovery of content automatic 
and straightforward. 

The new FlockCast capability 
allows you to 'broadcast' your 
public actions to multiple 
locations at once, eliminating 
duplicate effort. Flock makes 
posting and promoting your 
own blogs into Facebook effortless; drag and drop content you find anywhere on 
the Web into your favourite blog and Flock posts it to your Facebook newsfeed. You 
can also automatically post your Tweets, status updates from MySpace, Bebo and 
other networks, along with blog posts and photo uploads to Facebook. And when 
you share a URL in a Twitter message, Flock automatically shortens the URL- 
eliminating the need to shorten the URL with yet another site. 

Flock 2.5 also includes Facebook Chat for instant messaging with friends. 
Facebook Chat lets you see when other people are on online and makes sharing 
your discoveries with them easy, so you can remain connected while you travel 
across the Web. You can also drag and drop photos, videos, links and text into your 
chats, making your Web experience simple, social and fun. Videos of the new Flock 
2.5 can be found at 

Develop widgets with Maemo 5 Beta SDK 

Nokia has released the Maemo 5 Beta SDK that will, among other things, also 
enable the development of widgets for the Maemo 5 Desktop. Maemo 5 is the 
next major release of the Linux platform developed by Nokia in collaboration 
with some of the best open source community projects. The key new features 
are: OMAP3 support, HSPA data connectivity, high-definition camera support, 
hardware-based graphics acceleration, etc. The SDK still includes a simplified UI 
implementation of the desktop and the application Menu. The Desktop Edit Mode 
is now enabled in order to ease the development and testing of desktop widgets. 

This release comes with the first draft of the Development Manual. 
Also, a new example application and desktop widget are provided to help 
developers getting familiar with 
the new UI style driven by finger 
touch interfaces. The developer 
documentation, including new 
code examples, will be updated 
regularly, independent of new SDK 
releases. Point your browser to to 
grab the latest release. 

GStreamer plug-in for 
0MAP35x processors 

Minimising the complexity of 
software integration with a uniform 
open source multimedia framework, 
Texas Instruments (TI) has 
announced a new GStreamer plug- 
in for developers designing with 
OMAP35x processors and digital 
media processors based on DaVinci 
technology. Praveen K Ganapathy, 
director, business development, 
Texas Instruments India said, "The 
plug-in helps optimise systems to 
utilise the hardware accelerators 
or the digital signal processor 
(DSP) for processing-intensive 
tasks, such as video and audio 
decoding/encoding. This frees 
the ARM to handle other tasks so 
developers can deliver a feature- 
rich multimedia experience with 
improved Web browsing and 
video streaming through products 
such as media players, video 
editors and capture encoders." 
The TI GStreamer plug-in can 
be downloaded at 

MontaVista introduces 
MontaVista Linux 6 

MontaVista Software has released 
MontaVista Linux 6. The new 
version provides a complete 
embedded Linux development 
environment comprising Market 
Specific Distributions, development 
tools, and the support and 
maintenance required by developers 
to fully leverage the semiconductor 
Linux technology and resources 
from the open source community. 
This approach to embedded Linux 
is fully aligned with the embedded 
Linux supply chain for the first time. 
MontaVista Linux 6 is in use by beta 
customers currently and will be 
generally available in July 2009. | LINUX FOR YOU | JUNE 2009 | 15 



(!) How do I add new TTF fonts 
in KDE? 

— Maurice Pacheco, 

To add new fonts, open the 
Konqueror file manager (or Dolphin, 
if you're using KDE 4) and enter 
fonts:/ in your location bar. The file 
manager will display two folders, 
namely Personal and System. If you 
want these fonts to be available to all 
system users, then copy your fonts 
to the System folder, otherwise to 
the Personal folder. 

(!) I have a system in which 
openSUSE 10.3 is installed. It 
was working fine for two months, 
but now it lands only in verbose 
mode when booting the PC, 
and then asks me to repair the 
filesystem. Please tell me how I 
can solve this problem without 
reinstalling the system. 

— Ananthakumar, akr_linux@ 

The simplest way is to repair your 
system using the repair mode from the 
openSUSE 10.3 install DVD. Boot from 
the DVD and find out the options. 

(!) I have installed openSUSE 
11.1 from the DVD bundled 
with LINUX For You magazine. 
The installation was flawless 
on my new Compaq Presario 
V5000 laptop. It has a Celeron 
processor with 1 GB of RAM. 
After installation, both mouse 
and keyboard were working 
fine but now I have noticed 
that the double quotes key 
has got interchanged with the 
4 at the rate' (@) key. I also 
have Windows installed on my 
system and the keys are working 
fine there. What could be the 

— Neelabh Anand, Patna 

It seems that you have selected 
the wrong keyboard type during 
installation (most probably the 
English UK keyboard). Launch 
the YaST administration and 
select Keyboard Layout from the 
Hardware section and set Layout 
to English US. Click OK and restart 
your X server to make the changes 
take place. 

(!) The anniversary issue 
(February 2009) of LFY that 
carried the article on Richard 
Stallman impressed me very 
much. I have started reading 
about him and recently visited 
his homepage. After reading 
about his various principles, I 
have been inspired to change. 
I have removed MS Windows 
XP from my system and have 
resolved not to use proprietary 
software. I am planning to 
install ReactOS, an open source 
clone of Windows. But I don't 
know whether it is a complete 
OS. (Can it be installed on 

computers?) The reason I'm 
asking this is that the file size 
of ReactOS is a mere 32 MB. 
Can I install any software that 
came with free software for 
Windows DVD (in November 
2008) in it? 

I'm interested in ReactOS 
because, although I have 
Kubuntu and OpenSolaris in 
my system, I don't find them 
easy to work on after having 
used Windows for so long. For 
example, Kubuntu doesn't have 
a media player to play MP3 
files and others. This is the real 
reason why many people don't 
switch to GNU/Linux, I guess. 

— Ramasubramanian 

Wow! It's great to read that you've 
dumped Windows for good. The idea 
is to depend (if at all) on proprietary 
software as little as possible. 

MP3s do not work out-of-the- 
box in some GNU/Linux systems 
not due to their inability to play 
these media files, but because 
these codecs and plug-ins are 
not available out-of-the-box due 
to some patent and licensing 
restrictions that are applicable in 
some parts of the world. You can 
certainly enable these features 
by downloading the appropriate 
codecs and plug-ins from the 
Ubuntu repository. Take a look 
RestrictedFormats for details. As 
for ReactOS, it's still in the alpha 
testing stage. It's okay if you'd like 
to test the OS, but we wouldn't 
recommend that you bet on an 
alpha-quality OS for everyday use. 
But, of course, please do give it a 
try, and see how it fares. EEf * t 

16 | JUNE 2009 | LINUX FOR YOU | 





Be the one to save the day for developers with a 
solution, or share something new to become the one 
everyone would talk about. Start a new project, join 
an existing one, or download softwares created by 
fellow developers. 


Code PI ex 


© 2008 Microsoft Corporation. All rights reserved. Microsoft is either registered trademark or trademark of Microsoft Corporation i 

United States and/or other coun 

For U & Me Review 


* Seems to be 
Jaunty Enough 

Ubuntu 9.04 lives up to its promise of bringing in up-to-date FOSS offerings. 

f/^^ has not always been a bed of roses for 
\^y Ubuntu, which has its share of brickbats. 
J And yet, there is something about it that 

C_^^ attracts users. It might be the simplicity of 

not having to decide between multiple editions of the 
same release. Ubuntu's professional look and feel, coupled 
with its coherence, could be the reason. It might even be 
the simplified presentation of a network of technologies. 
Perhaps it's a bit of all these attractions. Yet, love it or hate 
it, it remains one of the most popular distributions ever. 

Personally, I use it because... well, I have mentioned enough 
reasons. And so, when version 9.04, the Jaunty Jackalope was 
released on April 23, 1 downloaded it the very same day and 
set about trying it on my new laptop. Here is an account of my 
(ongoing) experience with Jaunty. 

The machine 

My laptop, on which I installed Jaunty, is a Dell Inspiron 1545 
with the following specs: 

■ Intel Core 2 Duo 2.0 GHz processor 

■ 3 GB RAM 

Figure 1: The default desktop (live session) 

■ 320 GBSATA hard disk 

■ Integrated Intel graphics 

■ 15.6-inch (39.6 cm) wide screen with a native resolution of 

■ 10/100 Mbps Ethernet port 

■ Bluetooth and Wi-Fi 

■ 1.3 mega-pixel Web cam 

First impressions 

I downloaded the 32-bit version of the live CD (which is 
bundled with this months LFY). Booting with the CD revealed 
the first difference from several preceding releases. The boot 
splash has changed, replacing the graduated progress bar with 
a thinner, colour- varied one. Next up, the GDM login screen 
has also changed, and so has the default wallpaper. Both now 
look much more professional than the previous ones. 

The following is a list of the major goodies included this 

■ Linux 2.6.28 

■ GNOME 2.26.1 

■ Firefox 3.0.8 

■ 3.0.1 

■ ext4 file system support (the default is still ext3) 

■ Amazon EC2-compatible cloud computing support 

■ A version specially designed for net books 
ext4 support is one of the major changes hitting 

distributions these days, but there are still occasional 
problems like data loss and lockups, so ext3 is the default. 
A technology called Eucalyptus allows you to set up a cloud 
computing facility, but it may not be ready for full-time use yet. 
This time, the Ubuntu team has also created a special version 
of the operating system for net books. 

Apart from this, Brasero is also updated, and a tool called 
Computer Janitor is included, which is basically a system 
clean-up utility, capable of removing orphan packages, for 

18 | JUNE 2009 | LINUX FOR YOU | 


For U & Me 

Figure 2: Jaunty's login screen 

Figure 3: The new notification system 

instance. The Droid font set, originally 
designed for mobile devices, is now 
available as ttf-droid in the repositories. 
Its sans-serif version is very clean and 
nice looking. You may wish to try it out 
as your UI font. 

All, however, is not well as far as 
my laptop is concerned. I found that 
the in-built Bluetooth device was 
recognised only if it was switched on 
before Ubuntu booted. Even then, if I 
switched it off while logged in, it was 
not recognised after switching it on 
again. My old USB Bluetooth device 
was recognised correctly, so I decided 
to use that instead and, finding all 
else to be working correctly, I started 
the installation from the boot screen 
after a reboot. 

The installer started from the boot 
screen through the Install Ubuntu 
option, which now occupies the entire 
screen. The installer s time zone selector 

has also been changed to a nice looking 
flat zonal map, which makes more sense 
for time zones than the earlier maps. 
The manual partitioner also allows you 
to select the ext4 file system if you want. 
Other than a cosmetic change in the 
keyboard layout selector, the rest of the 
installer is pretty much the same. 

Inside the system 

As I rebooted into the newly-installed 
system, I noticed that the boot-up time 
has also decreased, and going from 
boot screen to login to desktop is pretty 

After I had logged in to the installed 
system, I connected to the Internet to 
refresh the repository cache, and here 
I found the new notification system 
working as advertised in the technical 
overview on the Ubuntu website. 
Canonical has come up with a new 
system to notify users on matters like 

Special Offer 

For Fresher with 
Placement Offer 

Future is OPEN 

Now, time to 
Upgrade your Skills. Register... 

is RHlfE 

Free Training for RHCE Exam 
RHCE Exam - 17 & 30 J 1111 2009 

First time in INDIA 
LPI Certification 
Available now ... 

LPIC 1 & LPIC 2 
UCE (Ubundu 
Certified Engineer) 

Courses Starts on 
18 June 2009, 
Register Now 



ZCE - International Certification for PHP 
from Zend Technologies - USA 





Future is open 

Lynus Academy Pvt Ltd 

Chennai -044-25021630, 
j. 42171278,9952966527 

[ Pondicherry- 041 3-2276233, 
| 4202121,9952966528 

; | LINUX FOR YOU | JUNE 2009 | 19 

For U & Me 




^l^n f^i '»>< n< >rr.' iifrtiT I Ad 

tf llbHRwi*^jMip*U^] 

tact«)»K*t MC*l«»bJT* «# .mnrtw furk*ge ih^jmI 



Figure 4: The Computer Janitor 

network connection status changes, 
print job status changes, new e-mails, 
etc. The default balloon tips no longer 
appear. They have been replaced by 
black rectangles appearing near the top 
right corner of the screen. 

The software, called Notify OSD, 
has received a not-too-excited welcome 
from the community. Some say it is 
useless because its position cannot be 
changed and it cannot show timeout or 
button widgets like the balloons, while 
others say it will be fine only if the work 
goes upstream so that it is included in 
standard GNOME. On the other hand, 
most people do like its appearance 
and the fact that it does not create 
overlapping notifications. For me, it 
doesn't matter that much as long as it 
works correctly. 

The software update system now 
does not show the balloon tip informing 
of available updates, but launches the 
Update Manager directly if updates are 
available. I don't know whether this 
has been done to prevent out-of-place 
notifications now that Notify OSD is 
being used, but the release notes say 
that you can restore the old behaviour 
by issuing the following command: 
gconftool -s --type bool /apps/update-nottfier/ 
autojaunch false 

Synaptic, the package manager, 
has also acquired the ability to 
show screenshots of programs, 
although many programs don't have 
screenshots available. 

On board, the rest is as usual. 
The stock software is included and 
the hardware is detected correctly, 
including my native screen resolution. 
My system does not have a separate 
graphics card, but the unobtrusive 3D 
effects of the user interface worked 
smoothly. Suspend/resume worked 
normally, and there were no freezes. 
Not finding any updates for my 
erratic Bluetooth device, however, I 
tried an alternative called Blueman 
(Bluetooth Manager), available 
through a Launchpad PPA (Canonicals 
custom software packaging service). 
Its homepage is at blueman-project. 
org. It replaces bluez-gnome, GNOME's 
default Bluetooth software, and 
is somewhat more feature-laden. 
However, it could do nothing for my 
in-built Bluetooth device, so I changed 
back to bluez-gnome. 

You may try it as an alternative if 
you work with Bluetooth frequently. 
I settled for my old and trusty USB 
Bluetooth device. The problem with 
the in-built one seems to be at a lower 
level— the kernel perhaps. The problem 
did not occur in Ubuntu 8.10, but it does 
occur in Fedora 10. 

After a couple of days, I tried the 
Computer Janitor and it showed me a 
package that could be removed because 
it had once satisfied a dependency but 
was no longer needed now. The Janitor 
is good to have around to clean up the 
system if you want to, but it is not likely 
to be used too frequently since this is 
GNU/Linux, and especially since this 
is Debian (I usually remove packages 
completely, including configuration files, 
when I uninstall something on Debian). 

Good enough 

Debian-based systems generally 
don't depart from the quality levels 
their parent upholds. It needs to be 
seen in which direction Canonicals 
innovations like Notify OSD will go, 
but on the whole, even in version 9.04, 
they have maintained their tradition 
of providing up-to-date, but stable 
software without show-stopper bugs. 
The codec installation for proprietary 
multimedia formats works as usual, 
except that, in addition to the 

flashplugin-nonfree package, which has 
trsinsitionedto flashplugin-installer, 
an adobe-flashplugin package is now 
available for Adobe Flash. Since it is not 
clear which one should be installed, I 
selected adobe-flashplugin seeing that it 
is supported by Canonical, whereas the 
others are not. 

Ubuntu has always been a 
distribution that's meant to be free as 
well as suitable for daily, real-life use. It 
has no paid version carrying proprietary 
stuff or extra facilities. It does not force 
experimental features on users and is 
not a restrictive, special-purpose system. 
Of course, there is a place for each of 
these too, and innovation, especially, 
has been a defining characteristic of 
GNU/Linux. However, we need the likes 
of Ubuntu too. I believe it is the integral 
feel, stability and comprehensiveness of 
the system that makes Ubuntu viable 
as an operating system for day-to-day 
use. At least, all of this has been true 
of the Ubuntu releases till now. I don't 
know what the next version, the Karmic 
Koala, will bring to the table (the newly 
planted Eucalyptus will hopefully be 
palatable to the Koala by the time he 
arrives ;-)). Until then, the Jackalope 
seems to be jaunty enough! EZEf * T^ 

Ubuntu 9.04 



PrOS! Speed, stability, ease of use, 

professional look and feel, 
easy support for proprietary 
hardware and software, high 
speed repositories. 


Graphical system 

administration tools not 

suitable for advanced use, 

installer changes hardware 

clock to UTC without asking 




Free (as in beer) 


By: Saurav Sengupta 

The author is a final year IT student 
and a software developer with an 
interest in both application and system 
programming. He can be reached at 
sauravsengupta0 1 @gmail. com. 

20 | JUNE 2009 | LINUX FOR YOU | 


For U & Me 

' A face off between 
' Mandriva Linux 2009.1 
Spring and the release 
candidate of Windows 7 


S y* 'he war has begun. Quite literally. The 
K^S/ final release of Windows 7, the latest (and 

greatest?) version of Windows is just months 
away. We laid our hands on the RC (release 
candidate) available for free on Microsoft's website, and 
took it for a spin against Mandriva 2009.1 Spring. Who won? 
The results are most surprising! 

The hardware platform 

We tested out both the operating systems on a pretty 
standard multimedia PC. The specs of the system are given 

■ Processor: Intel Core2 Duo E7200 @ 2.53GHz, 45nm 
Core Fabrication, without Intel VT. 

■ Memory: 2GB Transcend DDR2-800MHz JetRam 

■ Chipset: nVidia nForce 630i MCP 

■ Graphics (Onboard): nVidia nForce 630i/GeForce 7100 

■ Graphics (PCIe): nVidia GeForce 9400GT 

■ Networking: nVidia nForce MCP73 Networking 
Controller (Realtek RTL8139 Chip) 

■ Sound: Realtek AC'97 8 Channel High Definition On- 
board Audio (ALSA: Intel_HDA) 

■ Hard Disk (Primary): Seagate Barracuda 7200.1 1 320GB 

■ Hard Disk (Secondary Hosting our OSs): Western 
Digital Caviar 160GB 7200RPM SATA2 

■ Display: Samsung SyncMaster 510N (15" or, 
LCD-TFT, VGA Connection) 

■ Mouse and Keyboard: Microsoft Digital Media K/B and 
Microsoft Wireless Optical Mouse 

Now that you know the specs of our system, it's time 
to move on! 

The packages compared 

Both Windows 7 RC and Mandriva 2009.1 Spring (Free) 
come on single-layer DVDs. Windows 7 is a smaller 
download at 2.35 GB, whereas Mandriva weighs in at 4.34 
GB, or 1.99 GB more. Both are ISO images, and have to be 
burned onto a disk. 

Installation: Head-on 

We started out by creating two empty unformatted 
partitions of 25 GB each on the shiny new caviare. Then, 
after starting the countdown timer, we started the 
computer with the Windows 7 RC DVD in the drive. A little 
while later, a plain text message greeted us: "Press any key 
to boot from CD or DVD" with a growing number of dots 
after it (it's supposed to stay five seconds, after which it | LINUX FOR YOU | JUNE 2009 | 21 

For U & Me 


automatically boots from the hard disk). After a jab at the 
Enter key, the screen went blank. 

Not for long. Just a split second later, a screen with the 
message "Windows Is Loading Files" along with a progress 
bar appeared. It then completed a graphical boot screen 
and displayed four balls converging into a Windows flag 
and a lot of HDR effects. The screen was set at the full 
1024x768 pixels resolution, with 32-bit colour. Too little, 
too late: we already have this animated graphical boot 
capability in RHGB, which was demonstrated by Fedora 10. 

The installer took almost a minute to start, which 
is way too long for our liking. Anyway, once it was up, a 
screen came up asking for language and locale selection 
We selected English (India) as our language, and let 
the other settings be. Then we hit OK. A second screen 
came up, with a big 'Install Now' button amongst other 
things. We hit that as well. The set-up program thus got 
initiated, taking another minute to load. What's with 
Windows and speed? 

The first screen showed us a licence agreement. 
You know what Microsoft EULAs are! Anyway, without 
accepting it, we could not try it out, so we accepted it 
with a heavy heart. The next screen threw up a surprise: 
it was meant to ask us whether to upgrade or perform a 
new installation. Typical of Microsoft confusion-creating 
terminology, the new installation option is called 'Custom. 
But accompanying it was a common Microsoft Bug— the 
upgrade option was enabled, and below it was clearly 
stated, "The Upgrade option is enabled only when you are 
installing Windows from within an Operating System that 
can be upgraded to Windows 7." 

We hit the Custom button. A partition selection screen 
showed up, where we selected Disk 1 Partition (which 
means the first partition of the second disk, which 
GRUB guys will know :-)). It was unformatted (as 
we had prepared it). We hit Next, and whoa, 
installation had started before we 
knew it. Installation took a long 
time, and at the end of it, 
the thing rebooted 
the PC 

into Windows 7. The first run wizard then asked for a user 
name, a password, and most annoyingly, a password hint. 
Now Microsoft is just slashing open a security hole by 
enforcing that feature. It put the PC through its paces, ran 
some hardware detection, asked what type of network we 
were in, and finally took us to the desktop. 

Over the entire procedure, the set-up program had 
installed the Windows Boot Manager onto the first partition 
superblock and written a new MBR chainloading the first 
partition, thus effectively destroying GRUB. Windows XP 
was detected, but no sign of Fedora 10 remained. The entire 
procedure took 16 minutes plus user interaction time. Way 
too slow. On the upside, the Windows set-up looks very 
sleek and superbly streamlined, and it was a pleasure to 
actually install Windows, save the nasty Fedora busting 
surprise at the end (but it wasn't supposed to work anyway). 

Mandriva was a whole new story. We put the DVD in, 
and the first thing we knew was that a cool blue 'fishy' 
menu with some menu items for installing, rescuing, 
checking our hardware and booting from the first hard 
disk, had come up. We would have preferred a "Press any 
key..." prompt to save the overhead of starting the CD boot 
manager, however. We just hit Enter, and after a text-mode 
phase the GUI installer started up. 

The Mandy installer doesn't look anywhere near as 
sleek as Windows 7's, and at first glance has twice as 
many steps compared to Windows' set-up. The installer 
is arranged rather like Windows XP's, with a list of steps 
stacked in a sidebar at the left of the screen, and wizard 
dialogs exactly like the WINNT32.EXE installer, only a lot 
prettier. The first screen is for selecting the system locale, 
of course. No English (India) here, so we had to settle 
for English (British). We accepted the licence agreement 
(which informed us that there was no warranty) and then 
moved on to partitioning. Partitioning manually was a 
confusing affair for a new user, compared to Windows 7. 
Then on, it was smooth sailing. 

After selecting the root partition, we were asked if we 

22 | JUNE 2009 | LINUX FOR YOU | 


For U & Me 

wanted to configure additional repositories ( for pulling in 
updated software from the Internet during installation). 
This was a feature of the Windows set-up since the days 
of Windows XP (Dynamic Updates), but was absent in the 
Windows 7 RC set-up. Anyway, we chose not to use these 
repos but rather pull the packages from our DVD. Then 
we were asked if we wanted a GNOME desktop or a KDE. 
We chose KDE, since it is more Windows like (though 
a bit more advanced), and is visually better. And then, 
installation started in full swing. 

After the package installation was complete 
(throughout the progress one could choose to see a 
slideshow of Mandriva's other products or read a text 
output showing each packages install process), we were 
taken to the user configuration screen where we were 
asked for the root (administrator) password, and told to 
furnish the details of our user account. Here, there was no 
enforcement to furnish a password hint, and you could 
use a username other than your full name— two features 
absent in Windows and two features we really like. We 
were then asked where wed like our bootloader to be 
installed— we chose the MBR of our first hard disk (the 
one with 320GB)— and then we were taken to the systems 
configuration screen where we could configure every 
aspect of the system prior to first boot. 

We chose Asia/Calcutta as our time zone and India as 
our location. There was no need to tweak the bootloader, 
but we did that just for the sake of giving more descriptive 
names to the items rather than "linux", "windows 1" and 
"windows2". Both our Windows installations were detected, 
as well as Fedora Cambridge (which had disappeared after 
installing Windows 7). Video configuration was interesting, 
where the system defaulted to "nVidia Cards not working 
with nv" (we were using the 9400GT; the onboard was 
disabled in our BIOS— and more on that later). That was 
all. We went through the next step (which asked us if we 
wanted to install security updates, to which we said, 'No') 
and then the PC rebooted, and Mandriva 
went through a first run wizard, 
somewhat like Windows XP's 

Ratings Windows 7 Mandriva 2009 Spring 





16 minutes + 
user time 

1 1 minutes + user time 





Minimalist and 
pretty, sacrificing 

Rather full blown, with high 
functionality, sacrificing 




Out of the box experience, and looks: Eye to eye 

The out of the box experience on Windows 7 was much 
better than Mandriva, which is very surprising considering 
that even Windows Vista with Service Pack 1 lost by a 
mile. We'll see how. 

The first boot on Windows 7 was a big surprise, seeing a 
full resolution of 1024x768 at 32-bit colour, which is the native 
resolution of our 15 inch or 38.1 cm flat panel. Even Vista gave 
only 800x600 at 24-bit colour. Closer inspection revealed that 
the nVidia GeForce 9400GT was working with full DirectX 
11 support. It turns out that Microsoft ships Windows 7 with 
modified nVidia Forceware drivers that enable support for 
DirectXll (the Forceware drivers on nVidia's website are still 
for DirectXIO, but this is slated to change by the time you read 
this). Our Realtek AC'97 HD Audio worked as well, so did our 
Conexant CXI 1252 voice and fax modem (I still have a dial-up 
connection as a back-up, and I don't use fax, though I can). 
Windows also recognised our keyboard's multimedia hotkey 
caps (in previous versions I had to download and install 
IntelliType, a Microsoft add-on software; looks like Microsoft 
hates its own hardware), though only partially. The volume 
keys, playback control, mail and Web keys work; while the 
zoom slider, My Favourites, My Documents, My Pictures, My 
Music and Messenger keys don't. 

Windows 7 scores a perfect 10 for its looks. Microsoft's 
taken Vista's Aero to its next level, and added some features. 
They've removed some as well, like Windows Flip 3D (which I 
quite liked). One feature I quite like is Aero Shake, where you | LINUX FOR YOU | JUNE 2009 | 23 

For U & Me 


just hold a window by the Windows Manager and shake it, 
and all the other windows minimise, leaving only that one. 
The sidebar is now gone, and has been replaced by gadgets 
directly on the desktop, a la Konfabulator and KDE4. They 
call it the Windows Gadget Platform. Aye, refer to the photo 
gallery on the previous page to find out more. 

When you first boot up Mandriva 2009.1, you'll be 
forgiven for thinking that Mandriva is a visual disaster. The 
culprit is La Ora, the artwork stack of Mandriva, which 
makes it look like it's from the last century. We did some 
handiwork and switched our Mandriva back to KDE4's 
default look— Oxygen. It probably is a mere coincidence, 
but Windows 7 s and KDE4's desktop look very similar: a 
transparent, big, iconised toolbar, widgets on the desktop... 
It's another co-incidence that Mandriva and Windows 7 s 
default wallpapers represent a single fish in water. There 
are no glass borders on Mandriva, and the text won't look 
as good as on Windows (as subpixel rendering is patented 
by Microsoft as part of its ClearType technology). No Aero 
Shake as well. However, KWin's composting effects (now 
enabled by default if a good enough GPU is found) cover 
much more effects than Windows 7. These effects are more 
soothing than the ones on Windows, but the total effect 
is lost because of the lack of enough transparencies. And 
while Windows makes your windows look like glass panels, 
KDE makes them look like, umm... better. 

Another feature was wallpaper slideshows. KDE has it, 
but it'll cycle over all the wallpapers in your KDE wallpaper 
registry (or you can add your own 'Pictures' folders there). 
Over at Windows's stable, there are huge collections of high- 
resolution images grouped into categories, such as scenes, 
cartoons, nature, etc. You select one such category, and your 
wallpapers will cycle over images from it. A category (called 
a theme) will also change the window border hue (no colour, 
because it's transparent), and the sounds. 

Hardware detection on Mandriva was 
typical of a Linux platform. Everything 
except our voice modem (it's a 
software modem, and thus 
Windows specific) 
and the 

multimedia hotkeys on our keyboard was detected. Although 
our nVidia card was detected, drivers had to be downloaded 
from the Internet. That's because we're using the 'free' version, 
which means the DVD has only Free (as in freedom, not 
beer) software. The nVidia Forceware drivers are not free. 
But it wasn't at all hard to set it up, however. We could enter 
Mandriva Control Centre (Mandy's Control Panel) and just 
start the X configuration tool, and it asked us that since there 
were proprietary drivers available, would we like to install 
them? We said, 'Yes,' and after a few downloads and a logout 
later (no reboot, mind you— Linux doesn't need them), our 
9400GT was working like a charm. The Mandriva 2009.1 
Spring One Edition comes as a live CD and includes the 
proprietary drivers as well, so everything works out of the box. 

Ratings Windows 7 Mandriva 2009.1 



7 (when we reverted to 
the default KDE4 look) 







Out of box 
hardware support 



Overall user 



Don't be fooled, however; Mandriva still looks a million 
times better than Windows XP. 


This is where all good things about Windows 7 come to an 
end. Let's see... 

Windows 7 takes up an elephantine 6.5 GB space. It 
dumps everything on the hard drive, and then disables three 
quarters of all the features waiting for us to enable them. 
Gazillions of unused drivers lie on our hard drives, taking 
up space and slowing down the boot process. And at that 
amount of space consumption, we'd expect some goodies to 
come along with Windows. We were left shocked. 

Apart from Windows Media Centre, Windows Media 

24 | JUNE 2009 | LINUX FOR YOU | 


For U & Me 

Player and Windows Internet Explorer, all the software that 
we used to get bundled earlier is now gone. No Windows 
Mail, no Movie Maker, no Meeting Space, no Messenger, no 
DVD Maker, no Photo Gallery... nothing! We discover that 
we need another 173 MB download in the form of Windows 
Live Essentials to get anything at all working. Forget an office 
suite; you'll have to pay Microsoft close to Rs 17,000 to lay 
your hands on one. Or settle for a feature stripped one at Rs 
5,000. That's still a lot. Simple CD burning can be done with 
Windows Explorer, but no Authoring (VCDs, Video DVDs 
and Audio CDs) and no ISO burning. And wait till you hear 
this: Windows Live still doesn't have a DVD Maker, and its 
Movie Maker is dysfunctional, at best. 

Mandriva is aeons ahead. It includes a complete office 
suite, with more functionality than MS Office 2003. It's got 
the best audio player known to mankind, by the name of 
Amarok. A serious video player is lacking, but SMPlayer can 
be gotten from the repos. It has Kopete (instant messenger), 
KDENlive (a video editor), Gwenview (a photo viewer), The 
GIMP (an image composer with the same functionality as 
Photoshop, even with proper CMYK support) and a whole 
load of other software. Space consumption? A mere 2.5 GB 
when first installed. 

So how can a 4.34 GB DVD install only 2.5 GB of software? 
Well, apart from KDE, the DVD holds another completely 
different set of applications for the GNOME environment. 
Apart from that, Mandriva can perform as a complete server. 
It actually has server packages for the Web, mail, database 
and DNS right on the DVD. Windows 7 does have IIS7, but 
it's stripped, and none of the additional server software 
is present. And there's also virtualisation and clustering 
software, and a full range of development software— from 
languages to IDEs. 


Windows: 3 

Mandriva: 9 

Resource hogs 

Windows 7 is a resource hog. It needs so much for itself 

that it leaves nothing else for others. With 2 GBs of RAM ; 

we find only 427 MBs free for use. 

Just to display the desktop, it's 

been hogging graphics 

resources (I can 

tell from 

the temperature of our GPU; in Windows XP it remains cool 
as anything, in Mandriva even cooler but on Windows 7 1 can 
actually feel the heat radiating). With its new DirectX 11, it's 
touted as a gamer's OS. If I were to buy Windows 7 for gaming, 
I'd throw the disk into the sewers without remorse. 

Mandriva on the other hand is based on Linux, and 
Linux has always been a low-requirements kernel. Compare 
the requirements: Windows 7 needs at least a GB of RAM, a 
good GPU and a 1GHz processor. Mandriva needs 256 MB 
of RAM, any old GPU which has worked in the history of 
UNIX and a 500MHz processor. And don't be fooled by these 
low requirements; Mandriva certainly offers a good user 

And as of now, Windows 7 is downloading more than 700 
MBs of updates for itself and Office 2007. 


Windows: 4.5 

Mandriva: 9 

Multimedia capabilities 

Both Windows and Mandriva play MP3s and MP4 (XviD) 
files by default. Both play DVDs as well, and none play FLVs. 
Mandriva has an edge, however, as codecs for unsupported 
media formats are automatically downloaded and installed 
the first time you play one of those formats, whereas in 
Windows you need to trudge for a third-party solution that 
breaks the default codecs most of the time. 


Windows: 8.5 

Mandriva: 9 

Bug hunting... 

In Mandriva, we could not find a single road-blocking bug. 
However, Windows was full of them. First, Windows 7 would 
not recognise any drive volume labels Id assigned to the disks 
and showed all of them as "Local Disk". In Contacts, you can 
create only those contacts that have birthdays in the future. 
This bug's been there since Vista. Then, in Windows Explorer, 
if you select multiple files, all the icons overlap together and 
create a hotchpotch in the preview pane. | LINUX FOR YOU | JUNE 2009 | 25 

For U & Me 


...and the big bug 

This concerns the Windows update feature in Windows 7. 
Windows, by default, is set to download and install all security 
updates automatically without notifications (optional updates 
are not installed automatically). However, while the updates 
were being downloaded, we found out that we were unable 
to browse, or for that matter download e-mails to our mail 
client or stay online on Pidgin (Windows version). It turned 
out that the update feature was using up all our bandwidth. 
To circumvent this problem temporarily, we tried to stop 
the update download process. In the Windows Update 
control panel applet, we clicked on 'Stop Downloading', and 
immediately, the applet informed us that updating had been 
cancelled. However, we still could not browse, and the Data 
Traffic indicator on our router was blinking madly. We could 
only reach one conclusion: Windows was still downloading 
updates at its full capacity. We got proof of this when we 
resumed downloading the updates; we had paused at 85 per 
cent and it had resumed a full 3 per cent ahead— at 88 per cent. 

The usability of the Internet from our computer during 
the update process was so bad that even DNS queries would 
not resolve. We could partially improve on this situation by 
switching to the OpenDNS servers, but even then pages as 
simple as Google's homepage were taking two to three minutes 
to load, and others were giving up with connection timeouts. 

We believe that a combination of factors is to blame. Even 
though this build of Windows 7 is a release candidate, we cannot 
rule out a bug that makes the WU Applet say that downloading 
has been stopped, while in reality it is still happening. On the 
other hand, the fact that updates take up all of the bandwidth 
is a serious problem for Indian households, which typically 
have no more than 256 KBps of bandwidth for unlimited usage 
connections. And if they have limited usage connections at 
higher speeds, they pay more, because Windows 7 s updates 
are huge in size (~700 MBs has been downloaded as of now to 
our computer) as compared to Mandriva's ~300 MBs. But the 
biggest flaw we believe is that WU defaults to downloading and 
installing updates automatically without even notifying the user. 
Mandriva and most, if not all, major Linux distributions default 
to informing the user when updates are available, so that the 
users can download and install them at their own leisure, such 
as setting them to download overnight before going to sleep. 

Judgement day 

Well, Mandriva any day! Though Windows 7RC looks good, 
it does nothing else. And at nearly Rs 13,000 for the Ultimate 
Version (which has all these visual gimmicks; the lesser versions 
don't have Aero, don't have Media Centre and don't even look 
good), you're better off investing that money somewhere else. 
And with the kind of resource hog Windows 7 is, we'd still 
recommend Windows XP to any professional gamer, or to 
people who need some version of Windows at least. For people 
who can do without Windows, don't go back to Windows 7, and 
just switch to Linux. And now that Windows XP is off the retail 
shelves, you'll either have to buy Windows Server 2003, or resort 
to piracy to obtain Windows XP. But don't, and instead use 


1 . Windows does include nVidia Forceware drivers, but 
it doesn't include the nVidia Control Centre, making it 
impossible to tune the GPU by hand to deliver maximum 
performance. A default installation of the Mdv nVidia 
Forceware-GLX drivers from the repos does include the 
Control Centre, but it's nowhere near as advanced as 
the Windows version. But hey, settings are OS-specific, 
except overclocking. 

2. The Mandriva Installer stuttered on the bootloader. It 
installed six entries, one for itself, one for no-framebuffer, 
one for failsafe, two for Windows and one for Fedora. 
The first Windows entry was chained to boot into sdal 
and the second to sdbl . The first worked, it booted into 
the Windows 7 boot manager where I could choose to 
boot XP or 7. The second one gave an error: BOOTMGR 
missing. I'm certain this is a Windows problem. The 
Fedora menu entry didn't work as well, as GRUB faulted 
with a partition type unrecognised. That was rectified by 
changing the root entry from (hd0,2) to (hd0,1). 

3. Windows 7 has a feature called subsystem for UNIX 
applications, somewhat like Cygwin. However, upon 
enabling the feature, all I found was a folder in my start 
menu with a URL shortcut to SUA's download site. And 
the download is huge. 

4. Mainstream editions of Windows 7 will have a mode called 
Windows XP mode, which will provide a paravirtualised 
Windows XP on 7. This will require a CPU with 
virtualisation extensions. 

5. To test an anti-piracy feature, we tested Microsoft Office 
2007 with a known non-genuine key found on the Internet. 
The office-update website detected this non-genuine key 
and would not let us update. Cut to Windows Update, 

it downloaded updates for both Windows and Office, 
including two service packs amounting to well over 300 
MB and numerous security patches. 

6. On the interoperability front, it seems that MS has done 
some homework for a change. The stripped-down word 
processor in the name of Word Pad that comes bundled 
with the OS does support ODT files, but informs the user 
straight up: "Word Pad does not support all the features 
of this document format. Some formatting information of 
content might be displayed incorrectly." 

Linux. And if you need a good version of Linux, use Mandriva. 
And for people familiar with Linux basics, Fedora is also 
recommended. EEf T 

By: Boudhayan Gupta 

Boudhayan is a 14-year old student who suffers from an 
acute psychological disorder called Distromania. He owes his 
life to Larry Page and Sergei Brin. Apart from that, he enjoys 
both reading and writing, and when he is not playing with his 
Python ;-), during most of his spare time he can be found 
listening to Fort Minor, or cooking. 

26 | JUNE 2009 | LINUX FOR YOU | 



Microsoft invites all developers to join the open source 
community and online resource centre. Interact with the likes of 
Sam Ramji, Director of Open Source Software Lab, Jamie Cannon, 
Lead of OSS Community & Platforms and many others to find 
solutions to all interoperability challenges. 







gistered trademark or trademark of Microsoft Corporation in the United States and/or other countries. 

For U & Me Getting Started 

GYachl is Here 

If you are hooked to Yahoo! Messenger because of some of its cool and core 
features, but also want to keep your hands off Windows, take a look at GYachl. 


■ Web cam support 

■ Voice chat support 

■ File sending 

■ Photo sharing 

■ Mail notification 

■ Captcha support— 
Yahoo 8 onwards 
uses captchas to 
enter chat rooms 
in order to control 
spam bots. 

X j* 'here are many like me who are 
\^^// addicted to instant messaging, 

a.k.a. chatting. So it's not 
surprising to find so many IM 
tools available for GNU systems— Kopete, 
Pidgin, Empathy, and so much more. They 
enable you to log into any of the chat 
services— GTalk, Yahoo!, AIM, MSN and any 
others. Some are good, while some are not, 
although I did feel a bit inferior whenever 
I saw someone on a Mac or Windows 
machine using the full version of Yahoo! 
Messenger. This software allows them not 
only to chat but also use the Web cam, share 
photos in a live session, send or receive files, 
log in to chat rooms and much more. 

I have used most of the GNU chat 
clients, but none gave me the kind of 
satisfaction I needed. And I am not 
enough of a geek to write one myself. But 
I am, just like most of you, someone who 
has the most power— I am the user. And I 
am a GNU/Linux user. We are quite good 
compared to those Mac users for whom 
a computer is as good as a TV. Just turn 
it on, use it and shut it down. The policy 
they follow is called 'DADT'— 'don't ask; 
don't tell'... and how it works! It's not 
wrong to call the TV the idiot box. I don't 

know what a Mac ought to be called, 
though, but Mac users surely deserve 
as much right to information and better 
software (not just better looking versions). 
Now, Windows users are poor souls. 
Neither does the software look good, nor 
does it work well. 

So, as a GNU/Linux user, I took a dive 
into the World Wide Web and came across 
an IM client with a name not as long 
as Arnold's last name, but definitely as 
difficult to pronounce. It's called GYachl. 
I had never heard of it before— I guess it's 
just my curiosity that brought us together. 

GYachl [] is 
actually a fork of the Gyach Enhanced 
Yahoo! client for GNU/Linux operating 
systems. The project was forked because 
the original developer got involved with 
other activities and there was some 
worry over the future of the project. Well, 
that is the rule of the Freedom Software 
world, unlike the proprietary world— no 
project stops because of an individual or 
an organisation's unwillingness to take it 
further. Do you know what the future of 
Yahoo! would be like after an acquisition 
by M$, for instance? No. But you do put 
all your bets on any Freedom Software 

28 | JUNE 2009 | LINUX FOR YOU | 

Getting Started For U & Me 

h II ljWJIIBfcfc>*lh— I 

i- p> il ultWshat M ihifMYMri 

J I '111 IfM O-M 

« I . Li I>r 

_: i •*, UHEfiU' t M 

Figure 1: Features 

Figure 2: Chat window 

because it can always be forked. 

Now, enough history and politics. Coming back to 
GYachI — this IM client offers some cool features that are 
all missing in Pidgin and Kopete, which most of us use to 
talk to our Yahoo buddies. I wonder why the Pidgin and 
Kopete guys shy away from sharing photos... ;-) 


GYachI attracted me because it enabled me to do almost 
everything that any Yahoo user can do on a sluggish 
Windows machine or the too prudish Mac machines. 
However, since you run it on GNU/Linux systems, no one 
can send 'malicious' software and corrupt your system. 

In the world of GYachI, no one can boot you, or 
force you to shut down the IM client. This application 
will automatically term users as booters if they try to 
mess with you and throw them in the ignore list. 

What's more? You can share photos just the way 
you do on Yahoo! Well, to be honest, it's not the way 
you do it on Yahoo!, as people often complain there, 
"Hey I can't see your photo in Share.." and you don't 
even know what's wrong. In GYachI, you can see how 
many of your photos have been downloaded on your 

5* DHHINiM frw^T^ftG^i hi*ii <3*p*» *# 6 W , fti 


Figure 3: Login screen 

CwwmLm ttm-i M tmr*+ Mm* -tldj* 


I ■ < || ^ K -JirHI Q * . 

* j- * J 4^t*-* "* 

*w*ilft W^pi 

• Bum..;-,*; 

£ P P*VL.Ih*Blll 
tftfl r^mc 

'4vi« *-m in- 
Q ftp*** ■ 

| I^M 


Figure 4: Contact list 

friend's machine. You can share files by sending them, 
you can use video chat if you have a Web cam, and hey, 
it even lets you record the stream. Hmm, now this is 
something cool. 

GYachI is an awesome alternative to YM on GNU/ 
Linux machines, but this project needs some dynamic 
development— the last major release came out back in 
November 2007. As users, we can apply the simple rule 
of development— more users will create more of a buzz 
to attract the attention of the developers to get back to 
their jobs ;-) So, give GYachI a try— if it's not available in 
your distro's software repository, go to 
to get a DEB or RPM file of your choice. And if you like it, 
simply do what I did— spread the word. EEf * T^ 

By: Swapnil Bhartiya 

A Free Software fund -a- mental -ist and Charles Bukowski 
fan, Swapnil also writes fiction and tries to find cracks in a 
proprietary company's 'paper armours'. He is a big movie 
buff and prefers listening to music at such loud volumes that 
he's gone partially deaf when it comes to identifying anything 
positive about proprietary companies. Oh, and he is also the 
assistant editor of | LINUX FOR YOU | JUNE 2009 | 29 

FOSS On Mobiles 


The Magic 

Cupcake Effect 

A new device and an upgraded operating system. . . is that enough for Android 
to finally make its presence felt in a highly competitive mobile phone market? 

/ y* he first phone bearing 
\^// Google's open source mobile 

operating system, the HTC 
Gl, might have sold more 
than a million units, but it did not trigger 
the open source mobile OS revolution 
that many had expected. It did get decent 
reviews but was seen by many as a work in 
progress with a number of rough edges. Be 
patient, we were told, this is not the best of 
Android. Better things are in store. 

So it was hardly surprising that many 
mobile phone lovers were disappointed at 
the relative absence of devices based on 
Android at the 2009 Mobile World Congress. 
That said, the one Android-powered handset 
that was launched, did grab more than its 
share of headlines— the HTC Magic. And May 
saw the device being released in the markets 
(alas, not in India, although our sources 
tell us that it will make its way here, unlike 
the Gl), along with a significant update to 
the original Android operating system. The 

update, called Cupcake, took the operating 
system to 1.5 and added a number of features 
to the original operating system. But the 
question running through everyone's minds 
was: were these enhancements enough to 
make the new device a mainstream success? 

Serving a slice of (cup)cake... 

It speaks volumes of just how much Google 
has changed the mobile operating system 
game that people have actually become 
more interested in the OS running on the 
device than the device itself. The Cupcake 
update has ironed out a number of the 
faults of the original Android, although 
there is no visible change in the interface 
itself. Perhaps the most spectacular change 
in the OS is the inclusion of an on-screen 
keyboard— the first edition had none, 
forcing users of the Gl to slide out the 
QWERTY even for the most minor typing 
task. The new keyboard seems impressive 
and works in both landscape and portrait 

30 | JUNE 2009 | LINUX FOR YOU | 


FOSS On Mobiles 

mode. It has a preview area where 
suggestions of the words you 
may be attempting to type are 
displayed, and also comes with 
haptic feedback, allowing users to 
feel a slight vibration every time 
they touch a key— something that 
the iPhone does not have. 

The other significant change is 
in the browser, which is based on 
Webkit and has a new Javascript 
engine. This, by all accounts, 
facilitates faster browsing. The 
address bar has also been merged 
with the search bar (shades of 
desktop Chrome)— again, a very 
handy change considering the 
limited amount of display real 
estate available to users. There 
is even a text search option that 
highlights the words on the page 
that contain the letters you are 
keying in, as you type. Still, all said 
and done, Cupcake is not really 
in the class of Opera Mobile and 
Safari. Not yet. 

For imaging lovers, there is 
the addition of the record video 
feature— nothing earth-shaking 
really, but something that is 
so common that its absence in 
the Gl irked users. Incidentally, 
another multimedia addition that 
Cupcake brings is the support for 
A2DP, which should allow people 
to use most generic Bluetooth 
headsets with their Android 
devices. All this is topped off 
with the usual bunch of Google 
goodies, most notably Google 
Maps with Latitude (allowing 
users to track where their 
acquaintances are) and near 
seamless integration with most of 
Google's online services such as 
Calendar. Wonderful if you love 
Google; not too great if you do 
not. However, on the mail front, 
there is still no support for MS 
Exchange. Meanwhile, though 
the Google Marketplace is not 
giving the App Store sleepless 
nights, it still has more than a fair 
number of applications that users 
can download to enhance their 
Android devices. There is even a 



complete office suite (Documents to 
Go) available for Android handsets! 

...with some Magic 

The HTC Magic itself is much 
sleeker and better-looking than 
the slightly lumpy Gl— dropping 
the QWERTY keypad might annoy 
texters but it sure does wonders 
to the device's appearance. Unlike 
the Gl, this is not a phone that 
people will mind flaunting, the 
black version being particularly 

easy on the eye. With no physical 
keypad, the Magic is a complete 
touchscreen device and while 
Android still does not support 
multi-touch like the iPhone's OS, 
the quality of the touchscreen 
makes using it a pleasant enough 
experience— definitely better than 
some of the Windows Mobile 
devices one has used. Mind you, 
those who love the minimalist 
design of the iPhone will be 
annoyed at the clutch of buttons 
beneath the display— there are 
seven buttons in all, making 
the area a trifle crowded. The 
trackball that was seen in the Gl 
has been ditched, but the screen is 
so responsive that people are not 
likely to miss it. More annoying 
is that the phone does not have 
a standard headphone jack. 
The headsets plug into the mini 
USB port, leaving one with no 
option but to invest in Bluetooth 
headsets if one wants to listen to 
music while charging or syncing 
the device! 

In terms of specifications, 
there are the usual connectivity 
options including Bluetooth and 
Wi-Fi. The camera still is 3.2 
megapixels and there is no sign 
of a flash yet, but well, this is not 
really a multimedia phone. Battery 
life is believed to have been given a 
decent boost too, saving one from 
the need to charge it every day. 

Better hardware, better 
software... all in all, the HTC 
Magic represents a significant step 
forward from the Gl. But it still 
does not give one a compelling 
reason to switch to Android from 
one's existing smartphone, unless 
of course one wants that snazzy 
Google logo on the back of the 
device. Android has not yet really 
arrived. But if the HTC Magic is 
any indication, it does not have 
too far to go. EEf * t^ 

By: Nimish Dubey 

The author is a freelance writer with a 
passion for IT. He can be reached at | LINUX FOR YOU | JUNE 2009 | 31 

FreedomYug Guest Column 

Niyam Bhushan 

Get Out of Office it's an emergency: before somebody dials 1600-11-0033 toll-free. 

Do you know of noble gases? On the extreme 
right of the periodic table you may find a few of 
them. But you may find tens of millions more 
in the real world. These noble gases are totally inert to 
using, the completely muft and mukt 
alternative to MS Office. They must indeed be noble to 
pay what I consider a steep price for using MS Office, 
which is infinitely more expensive than the zero price 
of Oh! And wait till you hear all the gas 
from them about why they have not yet considered or 
migrated to 

Call 1600-11-0033 toll-free 

The most popular excuse is also the most obvious: "Even 
I've got my copy of MS Office free, like everyone else I know, 
so why should I use 
None of my friends or colleagues have 
been caught, fined, or sent to jail." You 
mean no one has yet called the anti- 
piracy toll-free number in India, 1600- 
11-0033? Good. Keep waiting. And be 
nice to that disgruntled employee you 
just sacked; or that competitor you 
just cut off from that lucrative deal. 

Hall of fame 

I just hopped over to the various websites of LINUX ForYou 
magazine. Let's see... there's,, and I then checked Venkatesh Hariharan's blog, 
Prakash Advani's, and of everyone else interested in the 
adoption of ODF and in India. None has a 
special section yet on the ' Hall of Fame'. Maybe 
evangelists of Free and Open Source Software (FOSS) in India 
could come together to create such a high-profile website. Or 
maybe you could just stop reading this article now, and go 
create it yourself. All this website would do is list government 
organisations, PSUs, and NGOs, that have successfully adopted A helpful link to each may even link to a more 
detailed case study. If I were a Linux Users Group (LUG) looking 
for a raison d'etre, I'd contribute to a 'Hall of Shame, listing 
those who stubbornly refuse to adopt. 


The next excuse: "Everyone uses 
MS Office, so my organisation has 
purchased legal licenses for every desktop and laptop in 
every department. Why should I use" 
If you're a government agency or funded by one, how 
about justifying that in a Right To Information (RTI) 
request. An RTI can be filed by any citizen concerned 
about why your department is squandering away so 
much money on expensive software licenses when a 
100 per cent drop-in replacement is available, which is 
not only free-of-cost, but also has a large precedent of 
adoption in various ministries and departments across 
the government of India. More information about India's 
RTI can be found here: rightto information. gov. in 

If you're a public-limited company, any shareholder 
could question you. If you're not answerable to anyone 
else, then launch Microsoft Excel and calculate how 
much money you'd save with a complete migration to Hold an office meeting out in the open 
to discuss how best to use the money saved to survive 
the meltdown, and grow your business. 

"Launch Microsoft 

Excel and calculate 

how much money 

you'd save with a 

complete migration to" 

Okay, I'm convinced 

So you want to migrate to OpenOffice. 
org but don't know how? You can 
download the free from 
the eponymous website, and install it 
on your computer. It's really that simple. 
You can then burn unlimited copies 
on to CDs and pass them around, or 
share over USB drives. If you want some 
training and orientation, check the ads in 
LINUX For You magazine, or a reputable 
IT training institute. Do you want commercial support so you 
can have someone else contractually responsible to handle any 
hiccups or technical issues? Just ask around for software vendors 
who can, or write to Ijyedit at ejyindia dot com for pointers. 

Out-of-office reply 

Are you feeling as frustrated as I am with the apathy of everyone 
around you using MS Office or any other proprietary office suite 
software? Do you want to get involved with any of the ideas 
mentioned here, or do you have more ideas? E-mail me. I'm 
focused on getting this started. No talk. Just work. EEf * t^ 

/- x 

About the author: 

Inspired by the vision of Osho. Copyright February 2009: 
Niyam Bhushan. freedomyugs at gmail dotcom. First published 
in LinuxForYou magazine. Verbatim copying, publishing and 
distribution of this article is encouraged in any language and 
medium, so long as this copyright notice is preserved. In Hindi, 
'muff means 'free-of-cost', and 'mukt' means 'with freedom.' 

32 | JUNE 2009 | LINUXFORYOU | 

New Sessions, New Tracks, New Opportunities 

Learn today. Design tomorrow. 


Bangalore 22 - 24 July, 2009 

Please Join Us: 


Technical Conference & Exhibition 
22-24, July 2009 
NIMHANS Convention Centre 
Bangalore, India 


LINUX FOR YOU Invites You to Attend 
The Embedded Systems Conference India 

The 2009 Embedded Systems Conference India will offer practical, how-to classes designed to meet 
the needs of embedded systems developers and engineers. The classes taught by the respected 
industry experts cover methodologies, processes, and techniques that are fundamental for today's 
engineers developing embedded systems. 

Register for ESC India at: 

In the classroom: 

Learn design solutions on conference topics 

such as: 

Programmable Logic 

Multi-core, Multi-threading, and Virtualization 

Linux and Open-Source Software 

Developing for ARM 

Real-Time Development 

Real-Time Kernels 

Multimedia and Signal Processing 



Project Management/Software Engineering 
Practices and more. 

Full Technical Program: 

Get access to actionable intelligence: 

Get access to hundreds of embedded products 
and services, paired with expert advice, 
demonstrations and instruction. 

• Access to Industry sponsored sessions 

• Access to Exhibition floor from July 22 -24 
(Thursday - Friday) 

• Access to Keynote addresses 

• Access to industry sponsored sessions 

• Peer to peer networking 

• Meet the Design Team 


To reserve your place in ESC India contact: 
Syed Javed | UBM India | | +91 22 67692420 

Platinum Sponsors 

fiti ===== = 

k Windows - Embedded _^^?i 

Gold Sponsors 

Ill^ll ££ 

Green Hills 


Supporting Associations 


Produced By 

tech insights 

inspiring the creators of technology*^ 

Organised By 


United Business Media 

FOSS on Mac 


Launching Apps at 



One of the most popular open source applications on the Mac platform is 
Quicksilver, an application launcher that remains a firm favourite among many 
users, notwithstanding a similar inbuilt feature in the Mac OS. We take a closer 
look at what makes it so special. 

r ac users generally are extremely 
fanatical about their operating 
systems. In fact, many will point 
out that one of the reasons 
they switched to a Mac was because they 
liked the different interface and that the 
Mac OS manages to do so much more than 
its counterparts, and much faster at that. 
Of course, the Mac OS vs other open OSs 
argument is a perennial one, and not one 
that we propose to enter into now. 
But even the Mac's perceived 
superiority has not stopped Mac users 
from using FOSS applications from time to 
time. And this is not only when the open 
source application provides functionality 
that is not inherent in the Mac OS (such 
as Quicksilver is one 
such application that, in spite of having 
a counterpart in the Mac OS itself, is still 
popular among Mac users. So popular that 
it has inspired clones on other platforms- 
most famously, GNOME-Do on Linux. 

Ready, set, launch! 

In the simplest terms, Quicksilver is a 
launcher. It primarily helps users find and 
launch applications and access information 
and files on their systems. Of course, 
there is more, as we will find out. But first 
things first— getting Quicksilver is easy; 

you can download the latest version of the 
application At less 
than 2 MB, it won't take much time and will 
install smoothly. Incidentally, Quicksilver 
is available for versions of the Mac OS 
going back to OS 10.3 (Panther), allowing 
those who have stayed with older versions 
(the latest is 10.5— Leopard) to use the 
application too, in the best FOSS tradition. 
Once installed, Quicksilver can be set to 
start at boot-up and can be invoked by a 
shortcut key combination (the default is 

On launching, Quicksilver takes a bit of 
time (about the only occasion it does so) to 
create a catalogue of the applications and 
folders used most frequently by the user. 
Using it is extremely easy— just launch 
it and enter the name of the application, 
file or folder that you are looking for and 
even before you finish typing, Quicksilver 
will probably have thrown up the option 
that you are looking for. We can already 
hear some Mac users snigger, pointing out 
that the Mac OS' excellent search tool, 
Spotlight, does exactly the same thing. 
What makes Quicksilver special, however, 
is that it allows you to not just open the 
application, file or folder that you have 
found but also execute a whole series of 
commands involving it. 

34 | JUNE 2009 | LINUX FOR YOU | 


FOSS on Mac 



No items ► 


Type ta search 


No actions ► 

flegin typing in the Subject held to search ( Execute ^ 

Figure 1: To search for an application or file in Quicksilver, just type in the 
Subject box 

=M« * 1 

fB\ fl^rfW.-DS 

S3 'r^Zli^-w*-,^, 

"— •! 

Lw-Ji-S- i l *-j 


- iiitihn . n ... 

- LBT.»r^l.U.1IJh*.-.iraer 


Figure 2: Quicksilver starts throwing up options that tally with your search even 
before you finish typing 

A commanding performance 

A simple example will suffice. Suppose I were searching 
my Mac for my photographs. I would then open 
Quicksilver, search for Nimish and then, from the options 
displayed, would pick the photograph (yes, you can tweak 
the settings to show you a preview) and click on it to 
open it. But that's only part of Quicksilver's magic. What 
if I had actually wanted to copy or delete a particular 
photograph or to just rename it or move it to another 
folder? Well, using Quicksilver I can do exactly that and 
much more, without having to open the photograph. All 
I need to do is select it from the options shown and then 
choose from one of the many actions that Quicksilver 
offers. I can even choose to open a file with a particular 
program, if need be. Another advantage that Quicksilver 
has is that it keeps track of the applications and folders 
you use and when you are doing a search, shows the most 
used options right up front— very handy indeed. 

What's also staggering is the speed at which 
Quicksilver performs. Although it does not do a system 
wide launch like Spotlight does, it more often than not 
delivers the result you want literally in the blink of an eye. 
Spotlight supporters will point out that their tool is much 
better for looking for an item whose name you might 
have forgotten, but if you know what you are looking 
for, Quicksilver seems a much better option, especially 
because it is likely to show you what you are looking for by 
the time you have finished typing the first letter! What's 
more, you can even add functionalities to it, such as the 
option to send instant messages, dial phone numbers, 
search for terms in a dictionary and so on— all without 
compromising on speed. 

And as if that were not enough, you can add a number 
of functionalities to Quicksilver by downloading a number 
of plug-ins. These enable you to accomplish a number of 

Figure 3: You can not only access a file, but can even carry out a number of 
actions such as renaming, deleting or copying it 

IflOO Pli^-inrt 

1 F« ltd -.vM\ plug -mi " . _ ^ . L 


Vh- AjMiibni 


iai ■:■■>, n, i .'iin j* 

II. tt.UI^U, t 

- ' . InmtM Fbfl-4ni 

~ £ fcfpJ* U* 1 Yfcd.lp 

Ufa erprfc/nj™ 

ii w ■i.-.m. 

Q £^4jranjmr Urfuif £- 1 

£i ;:>:.")■■ 

_ ft lttkp*.k Vvin'm 

ED MfrttOG 

~ 3| IBdrl ltadjk 

JU C*. 3.1,1111 

■J A felt! l"OTlKi 

]]JC Olttr/DG 

U U*t**hJ?*vlFffl 

IH -JWflS/W 

— - j| luddyhp. UJf 

d.V* 0tJ*^M 

" ^ tifeHntf Hri-h 

1.1 n r^ crt 

_ ft-CinlM H4d4t 

E>E HfflZJDfl 

Q ^(UVinnH 

1A : :i/,llr. 

1-1 AtitpLvtotf 

m wain? 

■_ Tt-Cto&Mnd fAUM 

BD 09/DHD8 

S jVcta*** 

5* m«^H 

■- 3|.<:uttw in*iwfc 

Ji airtf^7 

•J BCormind Uf« T«H iqU 

D,G MiflZ/M T 


*- fi a 


Figure 4: A number of functions can be added to Quicksilver using its extensive 
library of plug-ins, accessible from within the application itself 

tasks without opening specific applications— for instance, 
you can use the Apple Mail module or the GMail module 
to send mails and even play around with folders without 
having to open Apple Mail or go to the GMail website. 
You can also resize and tweak images, and assign ratings 
to your iTunes library by using the requisite plug-ins. 
And you do not have to go about searching for plug-ins 
for Quicksilver— you can access them from within the 
application itself by choosing the 'Plug-ins' option. 

Yes, it does have its shortcomings. Its searches 
are not as comprehensive as Spotlight and you have 
to type what you are looking for really fast— a single 
pause is considered as the end of the search and the 
application starts treating every letter you type after 
that pause as part of a new search. But its phenomenal 
turn of speed and the fact that it allows you to execute 
commands with minimum fuss makes Quicksilver a big 
hit among Mac fans, even after Apple boosted Spotlight 
considerably. Definitely worth a download if you happen 
to be using a Mac. EEf w T^ 

By: Nimish Dubey 

The author is a freelance writer with a passion for IT. He can be 
reached at | LINUX FOR YOU | JUNE 2009 | 35 

For U & Me Hypo/Thesis 

Oracle's Prophecy: 

Dodge This! 

Oracle: "Sorry, kid. You got the gift, but it looks like you're waiting for something." 

)racle has almost acquired Sun 
Microsystems. By the end of this 
summer, the details of the deal 
will be out. Post acquisition, 
Oracle will become the world's biggest open 
source company. This could mean hard times 
for one of the most conservative and anti- 
competition companies, Microsoft. 

Microsoft dominates the market owing 
to business practices that allegedly kill 
competition. Microsoft's early penetration 
into the market is the key to its dominance. 
Microsoft was never much of an innovative 
company. It's a myth that Microsoft's focus is 
the desktop. It's simply a lack of competition 
at the desktop that ensures Microsoft's 
dominance in that space. Innovations and 
Microsoft— the two simply don't seem to 
gel. Ever heard of anything innovative from 
those at Redmond other than IE and WMP-- a 
bloated Windows Vista or W7 barely qualify 
as 'new'. Look at competitors GNU/Linux and 
Apple, and you will know what I mean. 

The Windows-Office combo seems to 
be the only door MS has open for corporate 
users. But once Oracle takes over Sun, some 
radical decisions by the new giant may bring 
a balance into the market. In this hypothesis 
we will explore these frontiers. 

Welcome to the real world 

Microsoft has only Windows. Oracle now has 
GNU/Linux as well as the Solaris operating 
systems. Oracle may change the licence of 
Solaris to make it compatible with Linux and 
then share features to make both operating 
systems richer. Oracle will then push forward 
Linux in the enterprise segment as the default 
operating system, using its influence over the 
loyal database customers. 

The enhanced Linux will benefit home 
users as well. While Microsoft has only 
ageing XP or now a bloated W7 (read the 
'Fight Club' article on Page 21) environment, 
Linux has GNOME for companies and 
home users, KDE for high-end users and 
XFCE/LXDE for old machines. Linux has and Koffice; Microsoft only 
has a controversial Office 2007. The suite 
of applications that Linux has surpasses 
Microsoft by light years— just peep into the 
repository of Debian, which has more than 
25,000 different software. 

Since Linux will now have the backing 
of Oracle, Microsoft will think thrice before 
making allegations of patent infringement 
to scare off customers. So, that could be an 
end to Microsoft's FUD tactics, and users will 
increasingly adopt Linux. 

36 | JUNE 2009 | LINUX FOR YOU | 

Hypo/Thesis For U & Me 

My SQL: Free your mind 

Oracle may bring back the key 
MySQL developers, or work closely 
with them, to get the development 
back on track (which had earlier got 
hit under Sun). There already are two 
licences for MySQL— this will help 
Oracle. It will keep the FOSS version 
at par with the commercial version, 
or could even adopt Red Hat's 
model of subscription. This way, big 
enterprise will replace Microsoft's 
SQL with MySQL owing to the two 
biggest benefits— its open nature 
and support by a trusted corporation 
like Oracle. If customers want high 
scalability and are looking for Oracle 
DB, the transition would be smooth, 
so there will be market confidence 
regarding the adoption of MySQL 
instead of Microsoft solutions. Good bye, 
Mr Anderson 

This is one market where Microsoft 
dominates and dictates terms. 
Recently there were reports that its 
MS Office SP2 has serious issues 
regarding interoperability with ODR 
This could have been done to scare 
away people from using ODF and stay 
with OOXML. Oracle may integrate 
OOo with its communication suite, 
pump money into its development 
and enhance features. It will then 
push OOo to its corporate customers 
and dent Microsoft's market share. 
End users will get a much more 
polished product with the stable 
backing of a giant. 

Home users: You've been living 
in a dream world, Neo 

Once Oracle sees improved 
business through these products, 
it will do something it never did 
before— target home users. The 
same products— GNU/Linux and— will be available 
for home users, and Oracle will 
drive companies like Adobe and the 
rest to offer binaries for the Linux 
platform as well. Then graphic 
designers will have products like CS5 
running on top of Linux. Oracle will 
carpet the world with Linux. 

Hardware: Never send a human 
to do a machine's job 

Larry Ellison has already said that he 
is going to keep Sun's hardware unit. 
This may initially scare partners like 
HP and Dell, and push them towards 
Microsoft. But starting a war against 
other hardware vendors will make 
no business sense for Oracle. It will 
continue to reap benefits from Sun's 
hardware install base, and continue the 
development of new hardware to offer 
its solutions in an optimised manner. At 
the same time, it will work with vendors 
like HP to optimise on their hardware as 
well. Oracle will keep hardware only as 
an additional unit to continue to earn 
from the installed market, but will never 
push it for new customers. It will offer a 
choice between its own hardware and 
that from its competitors, as long as they 
use Linux as well as their database. 

Microsoft doesn't have a nut in the 
hardware segment, let alone a whole 
box, so the company will not be able to 
dictate terms and exploit penetration. 
[I am not talking about a mouse, 
keyboard and XBox. I am talking about 
serious products.] 

My way... or the highway 

All this means one thing: Microsoft 
may realise that the market can no 
more be controlled only on the basis of 
dominance. What Microsoft is facing in 
the online business will be repeated in 
the desktop and enterprise segments. 
The company will be forced to accept 
the terms of a free market economy. 
Going forward, the only thing that would 
ensure the future of Microsoft will be true 
innovation and fair business practices. 

This is something Microsoft is 
not very good at, but I never said they 
couldn't improve. EEf t^ 

By: Swapnil Bhartiya 

A Free Software fund-a-mental-ist and 
Charles Bukowski fan, Swapnil also 
writes fiction and tries to find cracks in a 
proprietary company's 'paper armours'. 
He is a big movie buff and prefers listening 
to music at such loud volumes that 
he's gone partially deaf when it comes 
to identifying anything positive about 
proprietary companies. Oh, and he is also 
the assistant editor of 
V J 



RHCE/RHCSS Exam Centre 

Hundreds of hardcore 

Industry Professionals 

Vouch for it. 

HHCE only l 


• Pioneer in LINUX training 

since 1999. 

• Chennai's #1 RHCE training 

• 100% results every month. 

• Many centurm students. 

• Also get trained on My SQL - 
Ruby, Python, Ajax... 

Next RHCE/RHCSS Exam on 

15 th &29 4h June 2009 

Don't wait. 

Register Now. 

Let the success vouch for you! 



Vectra Technosoft Pvt. ltd. 
Open Source Academy 




Jhaver Plaza, 1 A, N.H. Road, 

Nungambakkam, Chennai - 34. 

Ph: 28263529/ 3530/ 3540 

Telefax : 28263527 

E-mail : | LINUX FOR YOU | JUNE 2009 | 37 

For U & Me Analysis 












Pulls in Sun 

Analysis For U & Me 

Oracle is in the process 
of acquiring- another tech 
giant — Sun Microsystems. 
This merger will create an 
entity that will be much 
bigger and will probably 
erasure more fair competition 
in an industry hitherto 
dominated by either Microsoft 
or IBM. Oracle will also 
become the world's biggest 4 
open source company. This 
could make it most suitable 
for customers, as if will now 
have a stake in almost every 
possible field of the tech 
industry. The deal is sure to 
force all the major players 
to re-work their strategies. 
From the developer's point of 
view, since Oracle will now » 
own a lot of premium Free 
Software products, what will 
happen to core technologies 
like OOo, MySQL, OpenSolaris 
and many others? Will 
Oracle's new solutions stack 
dent the Microsoft office 
suite fortress? Will Oracle's 
hardware partners like Dell 
and HP become competitors 
and align with Microsoft? 
This Oracle-Sun deal is 
like a galactic collision that 
promises to shake up the 
global tech industry. 

Read on for the expert 
opinions on this mega 
acquisition, and the various 
scenarios that could emerge 
from it in the near future. 

r little more than a year ago, 
r when Sun acquired MySQL 
for US$1 billion, no one 
would have thought that one 
of the biggest and the most innovative 
companies would itself be bought out 
within a year. Things did not build up in 
just those 12 months. Sun had not been 
doing too well since the dotcom burst. 
The company kept operating due to its 
deep pockets, which were being drained 
steadily due to recurring losses. But 
then came a time when this could not 
continue. The company started looking 
for suitors. 

"I have known for quite some time 
that Sun's position was unsustainable 
and untenable. Somebody was going 
to buy them. The fact that none of the 
companies I could imagine buying Sun 
would find Sun a particularly good 
fit, did not trump the fact that Sun's 
shrinking revenues and relevance 
meant that the sooner they sold out the 
better. When the deal was announced, 
the acquiring company might have 
been a surprise, but the fact of the 
acquisition was inevitable," says Michael 
Tiemann, co-founder of Cygnus 
Solutions, a company founded in 1989 
to provide commercial support for free 
software that was later merged with 
Red Hat in 1999. 

"Oracle as the acquirer was 
unexpected though. There were a lot of 
different feelings about the acquisition. 
Overall it did not thrill anybody. It was a 
cold calculating move from Oracle that 
did not add much to the industry as a 
whole. If IBM had been the acquirer, 
people would have been less surprised, 
but an IBM acquisition would not have 
been exciting news too," notes Laurent 
Lachal, director, open source research, 
Ovum, a software and IT services 
consulting firm. 

But how different would it have 
been had IBM acquired Sun? "IBM has 
a systems and services culture that is 
a better fit for selling systems, while 
Oracle is strictly a software culture 
based strongly on the sale of software 
licences and maintenance services. I 
would personally be surprised if Oracle 
keeps the Sun hardware business," says 
Tony Wasserman, director, software 

management program, Carnegie 
Mellon University. Tiemann echoes 
this sentiment, "It is impossible to say 
for sure [what would have happened 
if IBM instead of Oracle had acquired 
Sun], but I think that IBM has 
demonstrated a number of strengths 
where Sun was weak, and vice versa. So 
it would have been a more logical and 
complementary marriage." 

"From the Linux Foundation's 
view, either Oracle or IBM represented 
positive outcomes for Linux. Both 
these companies have robust pan- 
organisational Linux initiatives," noted 
Jim Zemlin, executive director, Linux 

Since the IBM-Sun deal did not 
materialise, this is now an irrelevant 
point. Oracle has changed the game, 
and now, there is an equally-matched 
heavyweight that can compete with 
IBM in almost all the market segments 
where the Big Blue dominates. Well, 
competition and choice are ultimately 
beneficial from the viewpoint of the 
customer, who's more interested in the 
free market dynamics. 

On the other hand, HP may be a 
bit worried, as it will now have to deal 
with Oracle as a partner for database 
businesses, as well as a competitor in 
the hardware and operating system 

The hardware game 

The core factor of this deal is: while 
Oracle is a software company, Sun 
was primarily a hardware company. 
Hardware is a low-margin business, 
whereas Oracle's turf till now has only 
been the fat-margin software business. 
There are speculations that Oracle will 
sell off Sun's hardware business, which 
will accomplish two things for Oracle: 
end the worries of its OEM partners, 
and get rid of the investment-hungry 
and R&D-intensive hardware business. 
But Sun's balance sheets show that it 
was the hardware business that was 
making money for the company. In the 
first quarter of 2009, Sun reported an 83 
per cent year-on-year billings growth 
in its Solaris-based units. Sun reported 
a 12 per cent year-over-year revenue 
growth in the emerging markets region, | LINUX FOR YOU | JUNE 2009 | 39 

For U & Me | Analy 


"From the Linux Foundation's view, 
either Oracle or IBM represented positive 
outcomes for Linux. Both these companies 
have robust pan-organisational Linux 

—Jim Zemlin, executive director, The Linux Foundation 




with India, Latin America, a combined 
Russia, Middle East and Africa growing 
by double digits, year-on-year. 

Now, who would want to let go of 
such a profitable business? Certainly 
not Larry Ellison. The Oracle chief 
recently ended the speculation of a 
sell-off. He was quoted in a Reuters 
interview as saying, "We are definitely 
not going to exit the hardware 
business. If a company designs both 
hardware and software, it can build 
much better systems than if they 
only design the software. That's why 
Apple's iPhone is so much better than 
Microsoft phones. We think designing 
our own chips is very, very important. 
Even Apple is designing its own chips 
these days." [Guess he can't resist 
having a dig at his favourite rival, 

But Oracle has no prior experience 
in hardware except for Network 
Computers (NC), which could be called 
a failure. "Fortunately for them, NC was 
so small an effort that writing it off cost 
them almost nothing. Sun was very 
much a hardware company, and it's a 
surprise to see Oracle wanting to make 

such a bold move," says Tiemann of 
Cygnus Solutions. 

But sticking with the hardware 
business would mean walking a tight 
rope. HP, Dell and IBM may be wary 
of the situation. Well, Oracle might be 
happy to cause some worry to IBM, 
which has always been a competitor 
with an extra edge. Ownership of 
Java was one of the reasons Oracle 
acquired Sun, as Ellison claimed. 
IBM's stack uses a lot of Java, and 
Oracle just can't let it go to IBM so 
easily. It seems like Ellison made the 
right move at the right time. 

Only time will tell what strategy 
Oracle will adopt in terms of the 
hardware business— I'm sure it would 
not want HP, Dell and the rest to go and 
smoke in Microsoft's camp. The fact is 
that today's customers are smart. They 
know what serves their interests in 
the long term. Customers will now see 
more value in going to Oracle, which 
will force others to chalk out their 
strategy very carefully. But, nothing can 
be said unless the final details of the 
deal are out. I guess the whole industry 
is awaiting that moment. 

All eggs in the same basket 

Apart from hardware, a lot of equations 
are going to be recalculated in the field 
of software. One of the most interesting 
facts is that Oracle now owns one of 
the most popular operating systems its 
databases were running on— Sun Solaris. 
But at the same time, it also has its own 
Oracle Enterprise Linux (OEL), which the 
database giant proudly admits is virtually 
a copy of Red Hat Enterprise Linux 
(RHEL), minus the RH trademark. 

How will the two competing 
operating systems live and grow within 
the same company? What kind of 
commitment does Oracle have towards 
Linux (besides its own offering, OEL) 
and it being the preferred OS to run its 

The fact is that Oracle is one of the 
biggest customers of GNU/Linux, as well 
as one of the biggest contributors to the 
development of the Linux kernel and 
other GNU tools. According to Zemlin, "... 
they are one of the largest consumers of 
Linux in the world in their data centres; 
this is a company that is very pro-Linux. 
Purchasing one of Linux's competitors 
(Solaris) certainly bodes well for Linux." 

Sun's demise = failure of the open source model? 

There is a feeling that Sun's demise also means the failure 
of the open source model. But this is not correct. Sun 
failed due to the problems it inherited. 

Laurent Lachal, director, open source research, Ovum, 
notes, "Oracle is better positioned to make money out of this 
business than Sun was. Sun did not make much of its open 
source software because it never managed to make much of 
its software business— irrespective of the software being open 
source or not. If you want examples of open source successes 
look no further than the insolent financial health of Red Hat 
whose market capitalisation overtook that of Sun in early 2009. 

Sun's acquisition is not the result of the inability of open source 
to make money but of Sun to succeed." 

Tony Wassarman of the Carnegie Mellon University adds, 
"It's hard to make money in any business these days, let alone 
a profitable software business. The same is true for an open 
source business. There are a small number of companies that 
have built successful open source businesses— most of them 
combine their open source offerings with other sources of 
revenues, including SaaS and commercial add-on products. 
But Red Hat proves that it is possible to build a successful 
open source business." 

40 | JUNE 2009 | LINUX FOR YOU | 

Analysis For U & Me 

Oracle may be the best friend open 
source and Linux will ever have. Shane 
Owenby, director, Linux & Open Source, 
Asia Pacific, Oracle, earlier told us in an 
interview, "Our developers internally 
develop on Linux, so there's quite a lot of 
momentum there. There is something 
called 'Oracle on Demand', where 
Oracle runs an Oracle customer's Oracle 
software for them— we run that on 
Linux. So, we trust Linux that much." 

Greg Kroah-Hartman, the current 
Linux kernel maintainer for the stable 
branch, admits, "They have contributed 
a lot. See the articles about Linux kernel 
development on for every 
kernel release, for the details on exactly 
how many contributions they have 
made, and where they are." 

But will the acquisition of Solaris 
affect the development of Linux? Chris 
Mason, a developer from Oracle's Linux 
kernel team and the primary author of 
Btrfs (the filesystem poised to replace 
ext3 as the preferred filesystem on 
Linux), notes, "Oracle has been heavily 
using and contributing to Linux for 
a long time, and all of our public 
statements around Sun have talked 
about how Linux is still important to us. 
In terms of projects done by people on 
my Linux Kernel team, we don't expect 

any decrease in our contributions." 

"I expect Oracle's work on Btrfs to 
remain unchanged. The work the Oracle 
kernel team does is top-notch and is 
likely to expand," Zemlin hopes. 

There is another possibility. Since 
Oracle now owns Solaris it can change 
its licence to make it compatible with 
Linux, allowing code to be shared 
between the two projects. This way it 
will be able to port missing features of 
one operating system to another which, 
in turn, will eventually improve both the 
products. Zemlin's statement seems to 
echo this, "We would love to see Solaris 
under a GPLv2 licence... This would be 
a win for users of both platforms." [The 
open source Solaris project, OpenSolaris, 
is licensed under CDDL, a licence which 
is incompatible with the GPLv2 licence 
that Linux uses.] 

Whether Oracle relicenses Solaris 
or not, either way it's a win-win for 
Oracle, at least. There seems to be no 
valid reason for Oracle to decrease 
its contribution to Linux, which has 
become very powerful and popular in 
the server segment. 

So, what now remains unanswered 
is the future of the core open source 
technologies that Sun had developed 
or acquired over time. Some of the 

"Oracle has a strong business interest in supporting Linux" 

...according to Jim Zemlin, executive director, The Linux Foundation. 

Q. What is the general sentiment within the Linux community post this acquisition? 

Jim Zemlin: Generally positive, but let's wait and see. The deal still needs to 

be finalised and there are many questions about what will become of the many 

important open source projects like and others. 

Q. Are you in touch with Oracle or Ellison to discuss the future of Linux and Solaris? 

JZ: I work closely with Ellison's staff, particularly with Wim Coekaerts, who's Oracle's 

vice president of Linux engineering, and also a member of the Linux Foundation 

board of directors. 

Q. Oracle and Microsoft are both proprietary companies. How much honesty or 

genuine effort do you see from each side in terms of supporting Linux? 

JZ: Oracle has a strong business interest in supporting Linux. It is run on Linux, 

it offers Linux products and services, and its primary development platform is 

Linux. Regardless of whether or not Oracle offers proprietary software, it has a 

strategic interest in supporting Linux. Microsoft, alternatively, has little business 

interest in supporting a competitive platform that it does not use at all. It does have 

an interest in promoting interoperability between Linux and Microsoft products in 

order to respond to customer demands. The company is doing this in Sam Ramji's 

group at Microsoft, and we often collaborate with them on various issues that are 

beneficial to both parties. 

technologies seem to compete with 
Oracles line of products. Will Oracle sell 
them off, kill them or polish them to 
enter the markets it is absent in? 

"We would be 
happy to cooperate 
very closely with 
Oracle but we are 
not likely to join. 
After working for a 
big company like 
Sun, we enjoy the 
extra freedom and 
benefits we get in 
a smaller company. 
Another thing is 
that I don't think 
Oracle can match 
the benefits of the 
hacking business 
model we have 
been using." 

—Monty Widenius, co- 
founder, MySQL 

www. Linux 


For U & Me Analysis 

The day after tomorrow for 

MySQL is one product that almost 
everyone is talking about because 
it seems to compete with Oracle's 
database business. MySQL is arguably 
the most widely-used database for 
Web development and Web apps, and 
therefore has kept a sizable chunk of the 
market away from Oracle. This means, 
the acquisition could either spell the 
slow death of the open source database 
or fill its lungs with fresh air. 

No doubt it's been anything but 
a bed of roses for MySQL after being 

earlier acquired by Sun. Most of the key 
developers, including MySQL founders 
David Axmark and Michael "Monty" 
Widenius, left. Tiemann has the same 
view, "A year after Sun's acquisition of 
MySQL, the founders, CEO, and several 
lead developers had all left without any 
good things to say about Sun. To me, 
this hurt the otherwise stellar brand of 
MySQL. Fortunately, the open source 
community has many fine open source 
database projects, and whatever damage 
may have been done to the MySQL 
brand, an equal amount of good came 
to the other projects. Thus, there was no 

net loss to the open source community, 
though there was a competitive shift 
among the various projects." 

Monty came out with a new project 
and is currently working on Maria 
DB. However, he has no doubt about 
the quality of MySQL, and even has a 
few words of praise for Sun. He also 
says that Maria DB is less of a fork and 
more of a branch. He says that the core 
competency of MySQL is "...the people 
[behind it]! Sun has excellent support, 
sales and training people in the MySQL 
area. In the development part, they used 
to have excellent developers but a large 

'Sun's failure is not the 

...according to Michael Tiemann. Well, Tiemann is currently the president of the Open Source 
Initiative. However, his comments in this story and the following interview are his own opinion 
and does not represent that of the OSI's. 

QWhat is the general sentiment within the open source 
community post this acquisition? 

I cannot speak for the whole community, but I offer the 
following thoughts: 

1. A year after Sun's acquisition of MySQL, the founders, 
CEO, and several lead developers had all left without 
any good things to say about Sun. To me, this hurt the 
otherwise stellar brand of MySQL. Fortunately, the open 
source community has many fine open source database 
projects, and whatever damage may have been done to 
the MySQL brand, an equal amount of good came to the 
other projects. Thus, there was no net loss to the open 
source community, though there was a competitive shift 
among the various projects. 

2. Sun's ambivalence in bringing Solaris and Java put Sun in 
a position of constantly explaining and apologising, rather 
than leading and innovating. Whatever advantages Solaris 
may have offered compared with Linux back in 2000 or 
2001, today the Linux community is where the action is, 
not OpenSolaris. As for Java, Sun's attempt to protect' 
Java by keeping it proprietary has given a lot of ground to 
Microsoft, which really knows how to play the proprietary 
game. Had Sun been more willing to embrace open 
source principles earlier with Java, the whole competitive 
landscape might have been different. 

3. Given that Sun itself made so many mis-steps with 
respect to its own open source execution, Oracle has 
its work cut out. Somehow, it has to do better than 
Sun with Sun's own assets, and this means both on 
the community side (where Sun failed) and on the 

commercial side (where Sun was failing). Anything is 
possible, but some things are very difficult. 

Q There are concerns about the future of some of the 
critical open source technologies now owned by 
Oracle. What do you see as the future of, 
Java, MySQL and OpenSolaris? 

The great thing about open source is that the software 
can succeed and survive independent of any particular 
vendor. I believe that those projects with strong community 
support will continue to thrive. As for others that depended 
tremendously on Sun's own resources, it will be up to Oracle 
to continue that or not. And on the third hand, perhaps 
the community will decide independently to suddenly take 
interest in a project that it had previously ignored, if only 
because it now sees an opportunity to ride that project to 
successful independence. 

Q Oracle is a hard-core enterprise-only, profit-driven 
company. Where does open source fit in its strategy? 

By my estimation (see 
node/384 and, the proprietary 
software model is destroying US$1 trillion of capital 
investment every year, because so many applications 
are abandoned before ever reaching production, and 
those that do make it to production are often so late, 
so broken, or both, that as much as 20 per cent of most 
other projects must also be written down. By contrast, 
I believe that open source is the best strategy for the 
enterprise. So in that case, I believe that open source 

42 | JUNE 2009 | LINUX FOR YOU | 

Analysis For U & Me 

portion have now left or are about to 
leave. Sun has also a great website with a 
lot of information about MySQL, and is 
the main source for the MySQL source 
code and binaries." 

This sort of praise for Sun is 
surprising, coming from someone who 
once wrote on his blog, "The main 
reason for leaving was that I am not 
satisfied with the way the MySQL server 
has been developed... In particular, 
I would have liked to see the server 
development moved to a true open 
development environment that would 
encourage outside participation and 

without any need of differentiation 
on the source code. Sun has been 
considering opening up the server 
development, but the pace has been too 

But things have changed now, or 
rather those at the helm have changed. 
MySQL now belongs to a company 
that is the world's largest database 
vendor. Will things change for the good? 
"Not really' believes Axmark, "Since 
the suffering was mostly from being 
integrated in a big company. And this 
means another integration." 

Another factor that will decide the 

fate of the popular open source database 
is what MySQL means to Oracle— is 
it perceived as a threat or a benefit? 
Axmark thinks that MySQL is both a 
threat as well as a benefit. "But mostly 
a complement, since Oracle is not that 
big in the online/Web market. Oracle 
is aimed at OLTP [online transaction 
processing], and MySQL at Web-related 

Monty agrees, "MySQL is more 
suitable for Web developers or for 
applications where the demands change 
rapidly. It's also more suitable for new 
applications where you want to quickly 

failure of Open Source' 

fits perfectly into the future of any company that wants 
to derive profit from technology investments! 

Q Microsoft is Oracle's favourite rival. But Oracle now has 
more teeth. Operating systems, hardware, middleware, 
a complete range of databases, and the strongest MS Office 
contender — suite. Do you think Oracle will 
try to polish some of these apps to upset Microsoft Windows' 
market share among corporate users? 

I see many possibilities, but I also think that Sun is a 
complex company. Acquisitions are complex, and I don't 
expect that Oracle is going to rush a strategy that it has one 
chance to execute correctly. 

Q There is a school of thought that suggests that the 
failure of Sun and its buy-out by Oracle is a message 
that open source is not a profitable business model. What 
do you say? 

I would say that Sun's failure is not the failure of 
open source, but more Sun's failure to work with open 
source properly. If you want to look at the profitability 
of the model, look at the company that's doing open 
source the best. 

Q Oracle has been working with the Linux community, 
but is otherwise not seen as embracing the term 'open 
source'. How would the development of Sun's OSS products 
take place under a proprietary environment? 

I do not believe in 'proprietary open source'. I also 
think that the many attempts to create hybrid open source 
models are doomed to fail. I believe that Sun's failure proved 
that, and I remember when people used to think that Sun 
was too big to fail. I believe that if Oracle attempts a hybrid 

open source (or a proprietary open source model'), it will 
add its name to the list of companies who have failed by 
doing it wrong. 

QDo you think the open source teams from Sun will face 
a culture shock at Oracle, as the open source working 
environment seems to be missing at Oracle? The teams at 
Oracle may be more comfortable with Linux but not with 
Open Source? 

Oracle has been contributing to the Linux kernel 
for quite some time, and they get no special treatment, 
good or bad, from that community. If you are talking 
about Sun's engineering teams now reporting to Oracle 
managers, I'm sure that differences in management/ 
leadership style will be a shock for some and not for 
others. If anything, I would expect 
Java to fare a little better under 
Oracle than under Sun, in part 
because Sun treated Java like a 
child, and to Oracle it's just an 
asset. As I said earlier, I think 
that Open Source is a great 
way to grow the value of 
a technology asset, so 
perhaps Oracle will be 
more successful with 
a true open source 
strategy for Java than 
Sun— which for most 
of Java's lifetime, 
tried to make it look 
like it was open/ 
open source. | LINUX FOR YOU | JUNE 2009 | 43 

For U & Me Analysis 

comparison chart 

Benefits of MySQL: 

• Price 

• Open source (no lock-in) 

• More than one development entity 
(also at, ourdelta, etc) 

• Much easier to deploy 

• Bigger employment base, well known 

• Easy to set up replication 

• De-facto standard in the Internet world 

• Pluggable storage engines, which 
makes MySQL suitable for a wide 
range of applications that would not be 
possible with a conventional design. 

Benefits of Oracle: 

• More complete database (a lot of 

• Scales better on large systems 

• Trusted by the big enterprise users who 
still have doubts about open source. 

—courtesy Monty 

get things going without having to pay a 
lot (of time or money) to get the database 

All this is from the point of view of the 
MySQL founders. No one really knows 
what those at Oracle are thinking. There's 
been no word about MySQL's future in 
Oracle's statements. There are several 
possibilities, which may determine what 
Oracle could do with MySQL [see the side 
box on this page]. 

If Oracle does put MySQL in the 
'benefit' category it's good news. Oracle 
is a profit-driven, high-speed train, 
and can achieve what Sun couldn't— 
monetise MySQL. This will happen 
only if the company sees some benefit 
from MySQL. Given the installation base 
MySQL has, there is no doubt Oracle 
will get access to that market. Also, it 
will now have the entire developer base 
working around MySQL. Monty points 
out the benefits Oracle will get by merely 
owning the MySQL brand: "Owning 
the trademark of the most used open 
source client server database gives a 
lot of value. Oracle can use the MySQL 
website to spread their message." 

But will the core developers return to 
their much loved project and join Oracle? 
"We would be happy to cooperate very 
closely with Oracle but we are not likely 
to join. After working for a big company 
like Sun, we enjoy the extra freedom and 
benefits we get in a smaller company. 

What will Oracle do with MySQL? 

There are several possibilities around what Oracle can do with MySQL. Let's see 
what the MySQL founders think of these possibilities. Both Axmark and Monty 
have shared their opinions about the possible scenarios: 

(a) Kill it by stopping development or slowing it down, thus rendering it useless. 
Axmark: Meaningless, since there already are a few full/partial forks out there. 
Monty: The reason for doing this is to stop MySQL from cannibalising on Oracle 

(b) Keep an inferior version open but make a polished version paid and closed. 
Axmark: I doubt that would really work [make money] in my view. 

Monty: The reason for this might be the same as I'd suggested for (a) but they 
may try to commercialise our current users to get some money back from their 
investment. This would cause even more people to want to fork MySQL. 

(c) Boost development, fix issues and create an excellent product to compete in the 

Axmark: I could see them making MySQL work very, very well on Windows to 
compete with Microsoft's database products. And still work well on Linux, but 
not aim so much for high-end transaction loads. 

Monty: The reason for doing this would be to use MySQL to hurt the other 
commercial databases and gain market cap. 

(d) Sell it off. 

Axmark: Probably not. . . since the ones who would pay well would directly 

compete with Oracle. 

Monty: This could happen because they bought Sun for reasons other than 

MySQL and they don't find MySQL important; or if they have to do this because 

of US anti -trust laws. 
Monty's fifth possibility: I would prefer to see an (e) happen where Oracle would 
promise to keep MySQL always free— and to ensure this freedom it would establish 
an independent entity to develop MySQL source code and work with the community. 

Another thing is that I don't think Oracle 
can match the benefits of the hacking 
business model we have been using. The 
main problem is that the critical people 
needed to drive the MySQL project may 
not be staying around to give Oracle 
a chance to improve. I see it as my 
main job to ensure that the developer 
community is not split up and we keep 
the core engineers working on MySQL. If 
Oracle plays nice with these people, then 
things will improve dramatically with 
MySQL development," notes Monty. 

So that's back to Square One! 
Everything will depend on what Oracle 
does with MySQL. In a scenario like this, 
MySQL users must be sweating over 
concerns about the future of a product 
their businesses depend on. 

However, this is where the beauty of 
open source comes into the picture. No 
one owns the project, but only the brand. 
"The whole idea with FLOSS software is 
that it doesn't matter who owns it even 
remotely as much as it does for closed- 

source software. So they [customers 
and users] can continue to use MySQL 
whatever happens. And there are still 
tons of good MySQL support people 
at Sun, so there is no problem buying 
support from Sun," says Axmark. 

And just in case Oracle doesn't play 
nice, you can always fork the project. 
"With the current licence, there is no 
problem to fork. There are already 
several existing forks," says Monty. "The 
newest 'branch' is MariaDB that I am 
working on. We already have many of 
the core MySQL developers working on 
this so we have the competence to do 
this properly' 

However, many feel that though 
forking might be easy, maintaining the 
fork and ensuring its popularity is the 
biggest challenge. Also, a customer 
might be wary of going for an unknown 
project instead of a well-known one. So, 
how can a fork be successful? Monty 
argues, "The brand popularity gives 
some protection for Oracle, but it has 

44 | JUNE 2009 | LINUX FOR YOU | 


For U & Me 

"Oracle is a big player in the enterprise 
software market, and just like Microsoft, 
once it gets one product to a customer, it 
will try and use that installation as a lever to 
get other products in. Up till now, those at 
Oracle haven't made a serious attack on the 
desktop space. Maybe will 
give them an incentive to do so." 

—John McCreesh, marketing product lead, 


been shown before in the open source 
world that name changes of products 
can be done quickly. Just look at how 
quickly Firefox was adopted. The reason 
for being able to change quickly is that 
MySQL is a product mainly used by 
developers. Developers are quick to 
find and go with new trends, and if one 
fork gets a lot of attraction from the 
community it can take over very quickly' 

If Oracle realises the benefits of 
MySQL and boosts its development 
to capture new markets, it would be 
the best for the community and the 
customers. In case it fails to do so, 
customers don't have to worry; there will 
always be a fork ready. The road to 
independence (OOo) is one product 
that may not seem to fit in Oracle's game 
plan, and thus might have a hard time 
under the database giant's umbrella. 
John McCreesh, marketing project 
lead,, has this to say, 

"IBM already has its own commercial derivative, so it has a 
clear financial interest in keeping the 
project going as long as there is an active 
body of developers working on it. IBM is 
better known than Oracle in OpenOffice. 
org circles." 

But, an office suite is a product that 
is an absolute, basic requirement for any 
enterprise. It also ensures penetration 
into new segments. Heavy deployments 
at big enterprises as well as government 
agencies mean huge revenues. This has 
been Microsoft's bread and butter for 
ages. IBM and Novell both realise this 
and that's why they have their own OOo 
derivatives— Lotus Symphony and GO- 
oo, respectively. 

Oracle knows this only too well. 
An office suite was one important 
component missing from making Oracle 
the Apple of the enterprise world. So, 
the estimation is that Oracle might 
try to optimise OOo for its Oracle 
Collaborative and e-Business suites. The 
level of integration could go as high as 

pulling data from the Oracle backend 
database into OOo components, 
thus offering newer solutions to its 

This may seem a bit out of focus, 
but Microsoft is Oracle's archrival 
and an office suite is an important 
part of Microsoft's backbone. Oracle 
may not let go of an opportunity 
to annoy Microsoft and dig into its 
market. Apple also depends heavily on 
third-party office suite applications, 
so a polished version will only mean 
constant flow of money for Oracle. 
If Oracle makes a mistake here, OOo 
will be forked by the community and 
be adopted by either IBM or Novell, 
and the potential market will slip from 
Oracle's hands. But, considering the 
support Oracle offered for ODF (Open 
Document Format— an ISO standard 
for office document formats, and 
the default used in OOo), it is hard 
to believe that Oracle will let go of a 
potentially lucrative market. 

"Oracle is a big player in the 

A culture shock for Sun developers at Oracle 

Sun was known as an open source company, but Oracle 
doesn't have that reputation. But according to Lachal, 
"Oracle will definitely be a culture shock for the people at Sun, 
but that has not much to do with open source (and again 
I need to repeat that Oracle is not new to open source at 
all— open source is, indeed, very small in the grand scheme 
of Oracle things, but Oracle is better placed to make money 
out of it than Sun). The two companies had a very different 
culture— one rather laid back and, from a software point 

of view, not particularly effective; while the other is very 
aggressive, pragmatic and much more effective (but, I suspect 
much less fun)." 

Tiemann adds, "Oracle has been contributing to the Linux 
kernel for quite some time, and they get no special treatment— 
good or bad— from that community. If you are talking about 
Sun's engineering teams now reporting to Oracle managers, 
I'm sure that differences in management/leadership style will be 
a shock for some and not for others." | LINUX FOR YOU | JUNE 2009 | 45 

For U & Me Analysis 

Ingres' take on the deal 

When it comes to core database servers, Ingres is arguably the most feature-complete open source competitor 
of Oracle DB. Here's what Roger Burkhardt, CEO, Ingres Corporation, has to say about the acquisition... 

The revenue and earnings momentum from the string of 
acquisitions that Oracle has made is forcing it to buy into 
the hardware business, as it has run out of software assets to 
buy. The timing is interesting as, starting next quarter, the BEA 
acquisition will no longer mask any slowdown in revenues or 
margin improvements in the core business (BEA closed on 
April 29th, 2008). When this deal goes through, then Oracle 
will become a single-stack hardware, OS and applications 
company— a market position that HP has always avoided, 
and IBM had to retreat from. As a result, many hardware 
manufacturers will be reassessing their relationships with 
the combined Sun-Oracle combo— and this will open up 
opportunities for other software infrastructure players like Red 
Hat and Ingres. 

We are witnessing the beginning of the end of the whole 
1 980s proprietary IT era as the "New Economics of IT" takes over, 
and customers switch out of extraordinarily high-cost hardware 
and software, and migrate to open source and open standards. 
Oracle may be billing this merger as the beginning of the "next 
phase of computing", but they are missing the point. The demise 
of Sun has been caused by the "next phase of computing" 
which Ingres sees as the emergence of open source and open 
standards in the "New Economics of IT". Oracle may believe that 
by locking in the customer at the hardware, OS and applications 
level it can hold back the inevitable, but history speaks otherwise. 

Oracle is claiming the merger as a major profit-making 
opportunity that will enable it to squeeze customers and run Sun 
at "substantially higher margins". This is consistent as it has raised 
prices dramatically on BEA's Weblogic application server after 
that acquisition, and drove many customers to seek open source 
offerings such as Red Hat's JBoss. JBoss, Ingres, and other open 
source offerings provide the "New Economics 
of IT" that does away with predatory 
pricing tactics, and encourages open 
standards and competition rather 
than proprietary lock-in. 

The cause of Sun's demise lies in 
the commoditisation of its hardware 
business from open source and open 
standards. The compelling cost 
advantage of Linux on commodity 
hardware squeezed out the revenue 
and profit from Sun's SPARC server 
business and its software business is 
tiny by comparison. 

Oracle wants the Solaris 
operating system and it wants 
to control Sun's Java assets 

to compete with the strength of Microsoft's development 
ecosystem. The MySQL database and GlassFish application 
server come free with the package, and Oracle won't allow them 
to cannibalise the license revenues from its core database and 
Weblogic application server business. GlassFish/MySQL will be 
positioned as developer offerings that provide an easy 'on ramp' 
to production use of Oracle's proprietary offerings. Customers 
won't see the long-term investments required to create a 
competitive enterprise-class database, and are likely to see 
MySQL make even more use of proprietary Oracle interfaces and 
management tools. 

This is mostly negative for users. Oracle claims in its release 
that they can wring more profit out of existing Sun assets, but 
history shows this will largely come out of users' pockets. ISVs 
and their customers will be worrying about price increases for 
their Java licences. 

Given that Oracle bought the InnoDB product line from 
Innobase in October 2005 (a storage engine that complements 
the MySQL database), we would expect them to reintegrate 
InnoDB with MySQL. This involves undoing the work of 
the past three years, and so creates additional delays and 
uncertainty about upgrade strategies for MySQL users 
stranded on old releases. 

Oracle's history of predatory pricing and business practices 
probably makes this a negative outcome for software users. 
However, both companies have massive licence revenue conflicts 
that undercut any interest in growing Sun's open source assets. 

We don't view this as a monopoly but it reduces 
competition in the RDBMS space by removing the threat of 
MySQL 'going up-market' from its base in Web applications 
to compete with Oracle's enterprise class database. However, 
Ingres already provides a proven choice in this space. There 
is also a negative impact on Sybase, which has its largest 
DBMS install base on Solaris, and many users are already 
reconsidering the use of Sybase long term and considering 
open source and other alternatives. Oracle sales teams will 
now have visibility and access via Solaris and can argue for 
consolidation under an Oracle contract. 

On the positive side, Oracle is motivated to continue to 
invest in Java to create an alternative to Microsoft's developer 
ecosystem and MySQL will continue to serve much of the Web. 
From a database and application server perspective, this will 
eliminate the future evolution of MySQUGIassFish into credible 
open source alternatives to proprietary offerings for enterprise- 
class infrastructure. However, right now, Red Hat's JBoss and 
the Ingres database already provide more mature and capable 
alternatives in both these two categories. So from a user 
perspective, open source competition is maintained. 

Analysis | For U & Me 

"The whole idea with FLOSS software is 
that it doesn't matter who owns it even 
remotely as much as it does for closed- 
source software. So they [customers and 
users] can continue to use MySQL whatever 
happens. And there are still tons of good 
MySQL support people at Sun, so there is 
no problem buying support from Sun." 

—David Axmark, co-founder, MySQL Database 

enterprise software market, and just 
like Microsoft, once it gets one product 
to a customer, it will try and use that 
installation as a lever to get other 
products in. Up till now, those at Oracle 
haven't made a serious attack on the 
desktop space. Maybe 
will give them an incentive to do so," 
says McCreesh. 

He also warns that if something goes 
wrong at Oracle, the OOo community as 
a whole will not hesitate in making the 
office suite an independent entity. He 
points out, "There have been discussions 
around creating a foundation for the 
independent development of OOo. I 
think that's a real possibility if Oracle 
is not interested in or 
withdraws the sponsorship that Sun 
Microsystems used to provide." 

Well, to twist around an old 
fashioned greeting a little, "May the fork 
be with you!" 

Hitting at Microsoft 

Customers are looking for 
heterogeneous environments, and 
they find Red Hat and Oracle to be a 

better choice than Microsoft. While 
Red Hat is the leading open source 
company, Oracle offers a mix. The latter 
will be able to address any query that 
a customer might have regarding the 
entire stack— from the operating system 
layer to the application layer. 

The buyout of Sun will put Oracle 
in a much stronger position against 
its 'favourite' rival Microsoft. Let's face 
it— Ellison never misses an opportunity 
to punch Microsoft. This is the first 
time he will have all the required 
arrows in his quiver to make a dent in 
Microsoft's armour. 

The company is now a complete 
vendor— it has its own hardware, 
operating systems to run on those 
hardware, middleware, the mother 
Java, the most popular databases 
(whether open source or proprietary), 
an office suite, and many more 
technologies. Seems like it's becoming 
a multi-polar world, with Microsoft, 
IBM and Oracle in the ring. 

And let's face it, most customers 
would prefer going for Oracle's stack 
than Microsoft's. The fact is that many 

companies are migrating to GNU/Linux 
and Microsoft has been doing nothing 
but token lip service regarding its 
uncertain and dubious interoperability 
efforts. In the case of Oracle, everything 
will be well-optimised and well 
supported. If customers face any 
problems— from operating system to 
database, or office suite to middleware, 
all they have to do is dial Oracle. 

This seems to be an end to the 
dominant, dictatorial Microsoft era. 
IBM, on the other hand, will also have 
a giant to compete with. The three 
players will keep a check on each 
other. The result? The community and 
the customer will win. EHf * t 

List of Oracle's open source 

http://oss. oracle, com/projects/ 
http://www. oracle, com/ 
leadership-contributions. html 
Some other major projects include: 
Oracle modifications to Glassfish 
Project (CDDL-licensed) source files. 
The Mozilla Thunderbird Extension 
for Oracle Collaboration Suite users 

Unanswered questions 

Since both the involved parties are keeping mum, there are several areas where 
some questions are still unanswered. Tony Wasserman says, "The biggest 
problem surrounds the GlassFish application server, since Oracle recently acquired 
BEA with its commercial Java application server. Oracle also had its own Java 
application server, but I don't think that they are still investing in its development. I 
would not be surprised if Oracle reduced the staffing commitment to GlassFish, but 
that is not the same as killing the project." 

By: Swapnil Bhartiya 

A Free Software fund-a-mental-ist and 
Charles Bukowski fan, Swapnil also 
writes fiction and tries to find cracks in a 
proprietary company's 'paper armours'. 
He is a big movie buff and prefers listening 
to music at such loud volumes that 
he's gone partially deaf when it comes 
to identifying anything positive about 
proprietary companies. Oh, and he is also 
the assistant editor of 
V J | LINUX FOR YOU | JUNE 2009 | 47 


Industry News 


Intel fined a record $1.45 billion by EU 

The European Commission has imposed a fine of $1.45 billion on Intel 
Corporation for violating the EC Treaty antitrust rules on the abuse of a 
dominant market position (Article 82). The EC finds Intel guilty of engaging 
in illegal anti-competitive practices to exclude competitors from the market 
for computer chips called x86 central processing units (CPUs). The EC has 
ordered Intel to cease the illegal practices immediately to the extent that they 
are still ongoing. The $1.45 billion fine is reportedly 
the biggest-ever penalty the EC has imposed on a 
company for anti-competitive practices. 

The Commission's investigation followed 
complaints from AMD in 2000, 2003 and 2006 (the 
last having been sent to the German competition 
authority and subsequently examined by the EC). 
The Commission's decision follows a Statement 
of Objections sent in July 2007, a Supplementary 
Statement of Objections sent in July 2008 and a letter 
sent to Intel in December 2008 setting out additional 
factual elements relevant to the final decision. Intel's 
rights of defence have been fully respected in this case, the Commission said. 
Paul Otellini, president and CEO, Intel, disputed the EU ruling and stated that 
the company would appeal against the Commission's verdict. Otellini said, "Intel 
takes strong exception to this decision. We believe the decision is wrong and ignores 
the reality of a highly competitive microprocessor marketplace— characterised by 
constant innovation, improved product performance and lower prices. There has 
been absolutely zero harm to consumers. Intel will appeal." 

Throughout the period October 2002-December 2007, Intel had a dominant 
position in the worldwide x86 CPU market (at least 70 per cent market share). 
The Commission found that Intel engaged in two specific forms of illegal practice. 
First, Intel gave wholly or partially hidden rebates to computer manufacturers on 
condition that they bought all, or almost all, their x86 CPUs from Intel. Intel also 
made direct payments to a major retailer on condition it stock only computers 
with Intel x86 CPUs. Such rebates and payments effectively prevented customers, 
and ultimately consumers, from choosing alternative products. Second, Intel made 
direct payments to computer manufacturers to halt or delay the launch of specific 
products containing competitors' x86 CPUs and to limit the sales channels available 
to these products. The Commission found that these practices constituted abuses 
of Intel's dominant position on the x86 CPU market that harmed consumers 
throughout the EEA (European Economic Area). By undermining its competitors' 
ability to compete on the merits of their products, Intel's actions undermined 
competition and innovation. The Commission said it would actively monitor Intel's 
compliance with this decision. 

The world market for x86 CPUs is currently worth approximately $30 billion 
per year, with Europe accounting for approximately 30 per cent of that. 

"Intel has harmed millions of European consumers by deliberately acting 
to keep competitors out of the market for computer chips for many years," said 
Neelie Kroes, competition commissioner, EU. "Such a serious and sustained 
violation of the EU's antitrust rules cannot be tolerated." 

The computer manufacturers linked with Intel are: Acer, Dell, HP, 
Lenovo and NEC. The retailer concerned is Media Saturn Holding, owner of 
the MediaMarket chain. 

Linux Foundation unveils 

The Linux Foundation (LF), the 
non-profit organisation dedicated 
to accelerating the growth of Linux, 
formally launched the 
portal. LF took over stewardship of 
the site in March this year, at which 
time it began soliciting inputs from 
the community to help define the 
new via its Ideaforge 
Web tool. Now it has unveiled the 
results of that input with a new 
online home for all things Linux. 

The new will 
connect Linux users and 
developers, and by showcasing 
their skills through its guru listing, 
will connect individuals to jobs 
and collaboration opportunities. 
Instead of a static information site, 
the new Linuxcom will empower 
the Linux community to share its 
knowledge, get questions answered, 
download the right software and 
find hardware to solve problems. 

Visitors can register and 
immediately begin contributing 
to the community and build 
their Linux guru standing. Other 
community functions include 
allowing users to have their own 
blogs hosted by, review 
products in the product directory, 
and submit how-tos and tutorials 
to help fellow Linux users or 
developers. Inaugural Linuxcom 
sponsors include Intel, NetApp, 
Novell and Red Hat. 

48 | JUNE 2009 | LINUX FOR YOU | 

How can mobile solutions 

help us increase revenue? 

How will cloud computing help 
us do more with less? 

What technologies can help 
my business right now? 

How can virtualization make 
our business more efficient? 

Will unified communications 

help us improve customer 





for a Conference Pass 
or Reserve Your 
Free Expo Pass. 


The Leading Global Business Technology Event is Coming to India 

Get the information you need to build your competitive edge at IPs most comprehensive 
Conference and Expo. See all the latest innovations-including virtualization, mobility and 
cloud computing-that will help you increase efficiency, drive revenue and reduce costs. 

Register Today for a Conference Pass or Reserve Your Free Expo Pass. 

For Exhibiting and Sponsorship Opportunities Contact Pankaj Jain at + 91 98101 72077 or email: 











@ ispai mm 

M"1J| ETUI info cunty 

MKteB i-fc HIN'K! omfetbg Up 

Industry News 

Android's growth in 2009 slated to outpace all other mobile OSs 

According to industry analysts, Strategic Analytics, globally, Android smartphone 
shipments will grow 900 per cent in 2009. The market watchers believe that 
healthy support from operators, vendors and developers will drive adoption. The 

same analysts claim that Apple's 
iPhone OS will be the next 
fastest-growing smartphone 
operating system in 2009, with 
a 79 per cent growth rate. 
Added Neil Mawston, 
• * ^^^* director, Strategy Analytics, 

"Android has fast been 
winning healthy support 
amongst operators, vendors and developers. A relatively low-cost 
licensing model, its semi-open-source structure and Google's support 
for cloud services have encouraged companies such as HTC, Motorola, 
Samsung, T Mobile, Vodafone and others to support the Android operating 
system. Android is now in a good position to become a top-tier player in 
smartphones over the next two to three years." 

The 900 per cent figure has raised eyebrows, since as of Q2, only a million 
Android-powered handsets have been shipped. It would require over another 
5 million handsets to reach the market, to qualify for the 900 per cent claim. 
IDC pegs Android's growth rate at a more realistic 420 per cent. And backs the 
Blackberry OS for second place, rather than the iPhone OS. 

The third Blender movie in the pipeline 

Blender's third short 3D animation film will be based on the work of 
renowned author Martin Lodewijk. The 3D film— financed via the Internet 
and created with open source software— will be distributed 
freely. Producer Ton Roosendaal from the Netherlands-based 
Blender Institute is working with comic book author 
Martin Lodewijk on Blender's third short 3D animation 

movie. The film, with working title 'Durian', will 
be released and distributed as open content. 
Users and sponsors of the 3D program Blender 
will finance this project, with the main goal to 
further develop publicly available advanced 
3D animation techniques. The production will 
start in September, and is expected to get a 
worldwide premiere in April 2010. For more 
information, go to: 

The Blender Institute is the studio spin-off 
of the Blender Foundation, which organises 
and facilitates online projects to further 
develop the open source Blender 3D creation 
suite. With over 3.5 million downloads 
annually, Blender now is one of the most 
popular programs worldwide for 3D artists 
and animators. 

Intel, Novell to drive Moblin 

Intel and Novell have announced 
broad efforts to closely collaborate 
and encourage OEMs and ODMs 
(original design manufacturers) to 
adopt Moblin, an optimised open 
source Linux software platform to 
enable rich Internet experiences on 
Intel Atom processor-based netbooks 
and other mobile systems. Intel and 
Novell signed an agreement outlining 
their plans for collaboration. Novell 
also announced it will create a Moblin- 
based product for netbooks that it 
will market to a wide range of OEMs 
and ODMs. Additionally, Novell will 
establish Novell Open Labs in Taiwan 
to foster the adoption of Moblin and 
will work with the Taiwan Moblin 
Enabling Center (MEC), a joint effort 
of Intel and the Taiwan Institute for 
Information Industry, to validate 
designs for Moblin compliance. 

Sun reports surge in 
adoption of the Sun Unified 
Storage Family 

Sun has announced that hundreds 
of customers across a range of 
industries have purchased high- 
performance, eco-efiTcient Flash- 
enabled Sun Storage 7000 Systems 
to store more than 17 petabytes of 
data, making it the fastest ramping 
new product in Sun's storage portfolio 
ever. Continuing to add innovation 
to its Open Storage portfolio and 
Open Network Systems strategy, Sun 
also announced hardware capacity 
enhancements to the Sun Unified 
Storage family and an upgrade to its 
Analytics software, which ships with 
the Sun Storage 7000 line and gives 
storage administrators unparalleled 
insight into their storage systems. 
For a demo of the enhanced Sun 
Unified Storage family or to download 
software, you can go to www.sun. 

50 | JUNE 2009 | LINUX FOR YOU | 

Industry News 

The Open Database Alliance launched 

Monty Program Ab, a MySQL database engineering company and Percona, a 
MySQL services and support firm, have announced the 'The Open Database 
Alliance', a vendor-neutral consortium designed to become the industry hub 
for the MySQL open source database, including MySQL and derivative code, 
binaries, training, support, and other enhancements for the MySQL community 
and partner ecosystem. The Open Database Alliance will 
comprise a collection of companies working together to 
provide the software, support and services for MariaDB, 
an enterprise-grade, community-developed branch of 

The intent of the Open Database Alliance is to unify 
all MySQL-related development and services, providing a 
solution to the fragmentation and uncertainty facing the 
communities, businesses and technical experts involved 
with MySQL. Still under development, the Open Database 
Alliance is open to all businesses, organisations and 
individuals interested in helping create a new, centralised 
resource for MySQL and to ensure that it remains a top 
quality, high performance open source database. 
Monty Program Ab, founded by Monty Widenius, the 'father' of the 
MySQL database, and Percona, established by MySQL expert Peter Zaitsev, 
are the founding members of the Open Database Alliance. Monty Program is 
currently the primary developer of MariaDB, a branch of the MySQL database 
that includes all major open source storage engines, including the Maria 
transactional storage engine. "Our goal with the Open Database Alliance is to 
provide a central clearinghouse for MySQL development, to encourage a true 
open development environment with community participation, and to ensure 
that MySQL code remains extremely high quality," noted Monty. "Participating 
members at this stage in the Alliance' will have a strong voice in how the 
organisation is structured, and we look forward to collaborating with anyone in 
the industry that provides or depends on MySQL." 

Oracle buys Virtual Iron 

Oracle has agreed to acquire Virtual Iron Software (Virtual Iron), a provider 

of server virtualisation management software that enables dynamic resource 

and capacity management in virtualised data centres. The combination of 

Virtual Iron's technology and Oracle VM's scalable, high performance and 

highly available server virtualisation product is expected to provide more 

comprehensive and dynamic resource 

management across the full software 

stack. The company claims that customers 

are expected to benefit from better 

capacity utilisation, streamlined virtual 

server configuration, and improved 

visibility and control of their enterprise 

software. The transaction is subject to 

customary closing conditions and is 

expected to be concluded this summer. 

Until the deal closes, each company will continue to operate independently. 

Financial details of the transaction were not disclosed. 



Jeo Brockmeier 

Bdale Garbee 

Mark Shuttleworth 
Canonical Ltd. 

Bob Sutor 

LinuxCon stated for Sept 

The Linux Foundation (LF) has 
confirmed the dates for LinuxCon 
2009. The event combines 
the developer and end user 
communities, resulting in more 
than 75 sessions that address "all 
matters Linux". The event will take 
place on September 21-23, 2009 in 
Portland, Oregon at the Marriott 
Downtown Waterfront. 

LinuxCon represents both 
community and 
industry, fielding 
luminaries such as 
Mark Shuttleworth 
and industry 
experts such as 
IBM's Bob Sutor. 
Confirmed keynote 
speakers include: 
Joe "Zonker" 
community manager, Novell; Bdale 
Garbee, open source and Linux chief 
technologist at Hewlett Packard, 
well-known kernel developer; Mark 
Shuttleworth, founder of the Ubuntu 
distribution and Canonical; and Bob 
Sutor, vice president of Standards 
and Open Source at IBM. 

Three tracks— developer, 
business and operations— will 
provide the foundation for sessions 
that include tutorials, keynotes, a 
technology showcase and targeted 
mini-summits on topics such as 
mobiles, the desktop, the embedded 
space, and much more. LinuxCon 
will be co-located with the annual 
Linux Plumbers Conference (LPC), 
which attracts a star-studded pool 
of technical talent. Registration is 
now open. Early Bird registration 
costs $299 per person (until June 
1, 2009), and Standard registration 
costs $399 (until August 14, 2009). | LINUX FOR YOU | JUNE 2009 | 51 

Open GurUS How To 



with Extensions 

This article gives you a basic idea about programming with 
NetBeans support, enhancing the power of the office suite through extensions. 

ant to add a feature to You may 
need to download the source, 
build it, and then hack it for 
a feature development or enhancement. 
After all these efforts, it may take time to be 
accepted upstream. So the best solution is to 
create and distribute an extension— whoever 
likes it and is confident of the risks involved, 
can install and use it. 

For this purpose, OOo supports easy 
development of third-party extensions with 
the help of an SDK (software development 
kit). As an extension developer you don't 
need the required environment (distro, 
architecture, disk space, etc) for building 
source, leave alone the knowledge about the 

full development cycle of the core. You can 
start off with extension development with 
much less effort. 

Overview of extensions 

Extensions add additional functionality 
to the core OOo office suite, which can be 
deployed or removed independently. It can 
be in the form of UI components, custom 
functions for Calc, data pilots, new chart 
types, a spell-checker, etc. Some extensions 
like templates don't require coding at all, 
as they are considered non-programmatic 

OOo supports extension development 
in various languages like C++, Java, Basic, 
Python, Ruby, etc. It is suggested that 

52 | JUNE 2009 | LINUX FOR YOU | 

How To Open Gurus 

you choose a language that is platform-independent 
to write extensions, in order to avoid recompilation 
of code for each platform. Extensions written in Basic 
are considered as macros, and were discussed in the 
article in LFY's May 2009 issue, Automate Your Work 
with Macros, Page 52. This month I will 
explain programming with Java, with the help of the 
NetBeans plug-in. 

The OOo SDK 

The SDK is the key prerequisite for writing extensions. 
It provides tools, the build environment, and the 
documentation required for programming. It also 
provides a good set of examples to start learning. It is 
available as a separate download for various platforms 
like Linux, Solaris, Mac, Windows, etc. The package 
repositories of some of the distros also include it. 
The SDK provides detailed documentation of APIs 
in the form of the Developer Guide. Some languages 
are well supported by the SDK and some are under 

The SDK will be installed in any of the following 
possible paths: 

■ /usr/lib/openoffice/basis3.1/sdk 

■ /opt/ 

The SDK configuration is not covered in this article, 
as setting up the NetBeans plug-in will automatically 
take care of it. 

Setting up the IDE 

Download and install the latest version of the NetBeans 
IDE— the current version as of today is 6.5. 

Go to Tools^Plugins^Available plugins. Select API Plugin, download and install it— 
currently, 2.0.4 is the latest version. 

Go to Tools-^Options-^Miscellaneous-^OOo API Plugin. 
By default, the SDK path is detected automatically— if so, 
verify it; else, provide the correct path. 

Now the SDK and NetBeans are configured properly, 
and we're ready to get started with our extensions 

Types of projects 

You can create four types of projects with the help of this 

■ Add-On: An add-on is a UI extension in 
the form of a menu item or tool bar item. 

■ OpenOffice. org Calc Add-In: A Calc Add-In provides 
custom functions to spreadsheets. 

■ Component: It helps to develop UNO- 
based applications. 

■ Client Application: It helps to create 
client applications to bootstrap UNO and get a 
reference for running an office instance locally or 

In this article we'll discuss the first two types of projects. 

W 4, SS m <L 

-A il | i ^.-.k-.-w iMflP **i - 

-p k *H— — .- ♦fttfJ 

Figure 1: Setting up the OOo SDK 



— . JlLl-^r^- 

II 1-| ! Il 

4.»5-±w iJ -Am:*..": 

kJa.:m~ * z 

L HHr 

Figure 2: Add-on wizard: Command properties 


1 ^HUh^' 


t |Unih 



l In 




. -■■»1i+t- 

TfrBtoi^i +--M**ir'rm*nt 

^^K^^^Mh,- . i 

MWCii Mtd 

Figure 3: Add-on wizard: Menu properties 

A simple add-on project 

In this example, we'll create a simple add-on, which will 
load a new Calc document, insert a new sheet into it 
with the name "Hello", and change the contents of the 
Al cell to 20. 

Start the Add-on wizard using File — » New Project — » — » Add-on. In the next 
screen, fill in the project name, say "Simple", which will 
be the default name for the Main class also. Then fill 
in a suitable package name, say or glfy. example, and 
a suitable location to store the project. Finally, select 
whether the add-on should come as a menu item, a 
toolbar item or both. 

In the next screen (Figure 2) give a suitable name 
for the command, say cmdTest in place of 'Commando', 
which is there by default, and the display name as Test. 
We can leave the 'Icon' field empty for the moment. 
Note that we can create more than one command using 
the Add Command button; however, in this example we 
will restrict ourselves to one command only. 

In the next screen, we can create the menu properties, 
such as its name, etc (Figure 3). 

On the same screen and the next one, select the , LINUX FOR YOU JUNE 2009 | 53 

Open Gurus How To 


■ v+m I ft* I 

Figure 4: Add-on wizard: Context selection 

Figure 5: Add-on wizard: Adding the import package in NetBeans 

Tools Data 

Window Help 



Figure 6: Add-on wizard: After the deployment of add-on 

1 OlMMfnpH 

J _* J. ..IW. 


1 3*HJ|riW f r,M^-*ti *iCi** 

j : rrr-Vn 

'j bWtofMM 

Figure 7: Add-in Wizard: Function properties 

contexts of OOo for the menu and tool bar item in 
which they should be displayed. The UI item will be 
available in those contexts only— for example, on 
selecting the Writer context, the UI component will be 
displayed in the Writer component. 

Once this add-on is created, context and display 

names can be changed by editing the Addons.xcu file, 
which is available at Simpler OXT^registry^data^> 
org-^openoffice^> Office 

That's it! The project has now been successfully 
created. Go to the project navigator and open the code 
for the Main class— Simpler Source Packages — » orglfy. 
example — » 

In the dispatch method, look for the following lines: 

1 if ( aURL.Path.compareTo("Test" ) == ) { 

2 // add your own code here 

Add the following code in their place. This code 
requires many packages to be imported, which are not 
listed here, but NetBeans will help you automatically 
import the required packages (Figure 5). 


3 XMultiComponentFactory xMCF=m_xContext.getServiceManager(); 

4 Object desktop = xMCEcreateInstanceWithContext("com. sun. star. 

m_xContext ); 

5 XComponent Loader xCL=( XComponentLoader ) 

UnoRuntime query Interface(XComponentLoader. class, desktop 

6 Property Value [] loadProps = new Property Value [0]; 

7 String strDoc = "private:factory/scalc"; 

8 XComponent xComp = xCL.loadComponentFromURL(strDoc, "_blank", 
0, loadProps ); 

9 XSpreadsheetDocument xSDoc = (XSpreadsheetDocument) 
UnoRuntime. query Interface( 

XSpreadsheetDocument.class, xComp); 

10 XSpreadsheets xSheets = xSDoc.getSheets() ; 

1 1 xSheets.insertNewByName("Hello", (short)3); 

12 XIndexAccess olndexSheets = (XIndexAccess) UnoRuntime. 

XIndexAccess.class, xSheets); 

13 XSpreadsheet xSheet= (XSpreadsheet) UnoRuntimequeryInterface( 

XSpreadsheet.class, 0lndexSheets.getByIndex(3)); 

14 XCell xCell=xSneet.getCellByPosition(0, 0); 

15 xCell.setValue(20); 

16 xSheet.getCellByPosition(3, 4).setFormula("=rand()"); 

17 }catch(Exception e){System.out.println("err:"+e);} 

The following is a brief description of the given code: 

■ Line 3-5: Create a new instance of OOo from 

■ Line 6-8: Load a blank Calc document within the 
created instance 

■ Line 10: Get a reference to all sheets in the 

■ Line 11: Insert a new sheet with the name as Hello 

■ Line 12-13: Get a reference to the fourth sheet 
through the index 

■ Line 14-15: Change the content of the Al cell to 20 

■ Line 16: Set the formula =rand() for the D5 cell 

54 | JUNE 2009 | LINUX FOR YOU | 

How To Open Gurus 

To build and deploy this, right click on Project and 
use the options Build, Deploy and Run Extension in Or the Create OXT option can be used 
to create a packaged extension in the oxt format, which 
can be deployed using the extension manager. 

You will now see a new menu title, My Menu, under 
which a menu item Test is shown in the selected 
contexts. Also, a toolbar item named Test is created. 
Either of these help to run the required code. 

A simple add-in project 

In this example, we will create a simple add-in to 
provide a custom function called 'mycube' to Calc 

Start the Add-in wizard using File — » New Project — > — » Calc Add-in. In the 
next screen, fill in the suitable data for the project - the 
name, add-in name, package name, project location, 
etc. In this example, the following data is assumed: 
SimpleAddin as the project name as well as add-in 
name, or glfy. example as the package name and the 
suitable path for the project location. 

In the next screen, choose the function name, return 
type, parameter name and data types. 

Now, from the project navigator, select SimpleAddin 
Project, under Source Packages, orglfy. example package, and 
edit SimpleAddinlmpljava. In this file, find the code for the 
desired function, i.e., find the line public intmycube(intx). 
Complete the code for this function as follows: 

public int mycube(int x) 

return x*x*x; 

Build and deploy this extension like in the earlier 
example. To test this add-in, open any Calc document 
and write the following formula in any cell: 


...which will give 1000 as the result, as expected. 
Also, mycube is available in the list of Calc functions 
under the Add-in category now. 

Deployment and publishing 

The plug-in provides a direct option to deploy and run 
extensions, or to create an oxt file for later deployment 
through the extension manager. Also, extensions can 
be removed or updated using the extension manager or 
they can even be disabled and enabled without removal. 

Once an extension is developed and tested, it can 
be published to the 

You can also use the project option Publish 
Extension on Website for publishing. 

-i^ .„.■ i^M Mr 

Figure 8: Add-in Wizard: Parameter properties 

ftUnnjfin pvagv 



A ftf * n,-i5i>:*rd tetmrv} ixbtfvuori -to mpftn- 

PDF lmp*rt Eh twill**! CJJ Sif>HtHW¥rtrn& 

gg* fttf rinrLxriPrti mm nqiHlid m bw **A krpni Ed phnwtv* 1h» 1*^ -^ Icufciw b*i 


E, ■-- 

£fe± TOT 1* EH-DCHu HPlh HM IHCMrtKKI 
" En Hop Um wril -»Ulmn 


Jldchiu '..ii-plr AdiM duE i 

Figure 9: Extension manager 

To release a modified extension with the new 
version, open Project Name — » OXT '—> description, xml. 

Edit the version number build and create a OXT file, 
or deploy it directly. lUESf V 


OOo extensions wiki: 


OOo extension respository: extensions, services, openoff ice. 


OOo API: Developer Guide: wiki. services, openoff ice. 




By: Rajesh Sola 

The author has been involved in the OOo project since 2005 
and has contributed to VBA Macro interoperability, and OOo 
programmability through macros and extensions. He is a faculty 
member of the computer science department at NBKRIST, 
Vidyanagar. He is keen on FOSS awareness and promotion in 
rural areas, and is fond of teaching. He believes in training, thus 
encouraging and supporting students to take the open source 
road. You can reach him at rajesh at lisor dot org. , LINUX FOR YOU JUNE 2009 | 55 

Open GurUS How To 


Postfix for an MTA, Dovecot for POP/IMAP, and Cyrus- 
SASL for authentication. . . Are you ready for them? 

1 ey, I hope you've fiddled 
around with that WordPress 
installation enough to 
suit your needs. Or, did 
you install Drupal or Joomla instead? 
Whichever CMS it is, I'm sure you've 
been able to customise it to your 

As promised earlier, this month we'll 
concentrate on setting up a mail server. 
However, there's a slight change in the 
instruction model: I'll write about each 
role in a generalised way from now on. 

This way, you are not bound to the server 
architecture I've defined, but can set up each 
role in your own way. You decide all the low- 
level details such as disk space allocation, VM 
set-up and all that, while I write about the way 
to set up each specific service. 

|- Note: You have got to be mentally 
l^ZJ prepared to handle the barrage of 
settings and different configuration 
combinations that messaging services can 
throw at you. You'll also need to understand 
a bit of messaging terminology. You'll also 
need a Web server and a MySQL server. 
PostgreSQL will not do. 


Let's learn a bit about messaging 

1. Mail Transfer Agent (MTA): This is the 
program that actually sends messages 
from your account to other accounts and 
receives mail from other accounts. 

2. MX Record: The Mail eXchanger record 
in a DNS system specifies the machine 
that is used to handle e-mail on the 
network. There can be multiple MX 
records for a given network. 

3. Post Office Protocol (POP) 3: POP is 
a protocol, such as HTTP, used for 
communication between a mail client 


How To Open Gurus 

(such as KMail) and your mail server. In POP, all the 
mails are downloaded to the user's PC. 

4. Internet Mail Application Protocol (IMAP): This, for 
all practical purposes, does the same thing as POP, 
but there is one major technical difference. In IMAP, 
the mail is not downloaded to the user's PC, but is 
kept on the server itself. In essence, the mail client 
(such as KMail or Outlook) acts as an online browser 
for the mails on the server. 

5. Web mail application: A Web mail application 
enables access to our mails using a Web interface. 
What we use at when we want to 
check our Gmail accounts is a Web mail interface to 
Google's POP, IMAP and SMTP servers. 

6. Maildir: This is a file on the server that stores all the 
mail folders of an account. 

So you see, we need to install two pieces of server 
software (an MTA and a POP/IMAP server) to actually get 
a working messaging server. If we install only an MTA, we 
will be able to send and receive mails, but not read them. 
And with only a POP-IMAP daemon, we will only be able to 
read mails, not send and receive them (without receiving 
capabilities, from where will we get mails to read?)! 

Getting started 

Our software set is pretty mundane. We need an 
MTA and a POP-IMAP daemon. CentOS comes with 
Sendmail (the old and faithful MTA) installed by default, 
something we will do away with. The best choice for a 
MTA is QMail, but it's a pain to maintain. We will settle 
for Postfix. As for POP-IMAP, we will use the best- 

We need some sort of an authentication mechanism, 
which will be provided by Cyrus-SASL. A final touch will 
be SpamAssassin and ClamAV, to deal with mail malice. 

Installing the stuff 

Open a terminal, and type the following two commands 
as the root user: 

yum remove sendmail 

yum install cyrus-sasl cyrus-sasl-devel cyrus-sasl-gssapi \ 

cyrus-sasl-md5 cyrus-sasl-plain postfix dovecot 

This should pull in all the stuff we want, plus the 

The following section is completely based on a very 
helpful article at HowToForge— a link is presented at the 
References section. 

Configuring the mail server 

First of all, open up a terminal window. CentOS has a 
very annoying problem with its PATH variable; it doesn't 
include any of the shin directories. So type in: 

Now to set up SASL-TLS authentication: 

postconf -e 'smtpd_sasl_local_domain =' 

postconf -e 'smtpd_sasl_auth_enable = yes' 

postconf -e 'smtpd_sasl_security_options = noanonymous' 

postconf -e 'broken_sasl_auth_clients = yes' 

postconf -e 'smtpd_sasl_authenticated_header = yes' 

postconf -e 'smtpd_recipient_restrictions = permit_sasl_ 

authenticated, permit_mynetworks,reject_unauth_destination' 

postconf -e 'inet_interfaces = all' 

postconf -e 'mynetworks =' 

We must edit /usr/lib/sasl2/smtpd.conf so that 
Postfix allows both 'PLAIN' and 'LOGIN' log-ins. The file 
should look like this: 

pwcheck_method: saslauthd 
mechjist: plain login 

Now we need to create some self-signed certificates 
for encryption: 

mkdir /etc/postfix/ssl 

cd /etc/postfix/ssl/ 

openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024 

Remember this passphrase you were asked for. You'll 
need it extensively for the next steps. 

openssl req -new -key smtpd.key -out smtpd.csr 

openssl x509 -req -days 3650 -in smtpd.csr -signkey smtpd.key -out 


openssl rsa -in smtpd.key -out smtpd.keyunencrypted 

mv -f smtpd.keyunencrypted smtpd.key 

openssl req -new -x509 -extensions v3_ca -keyout cakeypem -out cacert. 

pern -days 3650 

Next we configure Postfix with these certificates: 

postconf -e 'smtpd_tls_auth_only = no' 

postconf -e 'smtp_use_tls = yes' 

postconf -e 'smtpd_use_tls = yes' 

postconf -e 'smtp_tls_note_starttls_offer = yes' 

postconf -e 'smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key' 

postconf -e 'smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt' 

postconf -e 'smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem' 

postconf -e 'smtpd_tls_loglevel = 1' 

postconf -e 'smtpd_tls_received_header = yes' 

postconf -e 'smtpd_tls_session_cache_timeout = 3600s' 

postconf -e 'tls_random_source = dev:/dev/urandom' 

Then we set the hostname in our Postfix installation 
(make sure you replace mail.linux.bogus with your own 

export PATH=$PATH:/sbin:/usr/sbin 

postconf -e 'myhostname = mail.linux.bogus' , LINUX FOR YOU I JUNE 2009 | 57 

Open Gurus How To 

Make sure that you are running your mail server on 
this computer, i.e., mail.linux.bogus (or whatever). And, 
most importantly, your DNS system must have at least a 
single A record to specify the IP address of this machine, 
and at least one MX (Mail eXchanger) record for this 
domain showing which machine will handle mails 
addressed to this domain. It should be something like 
what's shown below (in ISC BIND9): 

$ORIGIN linux.bogus. 

$TTL 3D 

@ IN SOA ns. linux.bogus. hostmaster.linux. bogus. ( 



10 mail 

After these configuration steps you should now have 
a /etc/postfix/main.cj 'that has at least these values 
(plus the ones we configured with p osteon/): 

queue_directory = /var/spool/postfix 

command_directory = /usr/sbin 

daemon_directory = /usr/libexec/postfix 

mail_owner = postfix 

inet_interfaces = all 

mydestination = $myhostname, localhost.$mydomain, localhost 

unknown_local_recipient_reject_code = 550 

alias_maps = hash:/etc/aliases 

alias_database = hash:/etc/aliases 

debug_peer_level = 2 

sendmail_path = /usr/sbin/sendmail.postfix 

newaliases_path = /usr/bin/newaliases. postfix 

mailq_path = /usr/bin/mailq. postfix 

setgid_group = postdrop 

By default, the CentOS' Dovecot daemon provides 
only IMAP and IMAPs services. Because we also want 
POP3 and POP3s we must configure Dovecot to do so. 
We edit /etc/dovecot, conf and one single line: 

Google apps for SMEs 

The target audience for this server series comprises 
home enthusiasts and Small-Medium Enterprises, 
although it's a bit biased towards the former. What if you 
run an SME and lack the funds and/or the necessary 
support infrastructure to support a server? All is not lost. 
There is hope... In SaaS. 

Google Apps for Business is a classic SaaS (Software 
as a Service) offering from the Internet people. It offers 
you e-mail, a calendar, Google Docs, Google Video and 
Google Sites. Everything is standards compliant; for 
example, e-mail comes with POP and IMAP, the calendar 
with iCal, Docs can work with MS Office as well as Open 
Document Formats, and videos with x264 videos. And, 
you get to have your online portal with Google Sites. 
However, at $50 per user account per year, it's not cheap. 

With the Google Apps Standard Edition, you get 
mail, a calendar, Docs and Sites. There's no video, and 
e-mail space is somewhat limited. However, it's still a very 
capable tool, and hey, it's free! I'm signing up for it. I'll use 
it for my second website. Heh Heh... 

Setting it up is pretty painless. Go to www. google, 
com/apps/intl/en/group/index.html, and then click on 
the big blue button. Enter your domain name, and select 
'Administrator'. Hit the button now. 

1 . This is the first step. Well actually, it's step 2 of 3. A 
free GA account is limited to 50 accounts. Now fill up 
this form, and hit Continue. 

2. Now you set up your admin account, review the 
licence agreement and hit 1 1 accept' . 

You're done! Well, almost. After sign-up, you're 
automatically directed to the control panel, where the first 
thing you must do is verify your domain. Verification can 
take up to 48 hours to complete. After that, it's smooth 
sailing. You can activate services one by one, including 
mail (with 7 GB of storage), the calendar, Chat, Sites and 
Docs. Happy SaaSing! As long as you have less than 50 
employees, of course. 

protocols = imap imaps pop3 pop3s 

This should be near the top. Do not touch any of the 
other commented-out lines. Without those directives, 
the default ones are used, and any non-default values 
will mess up our server. That's a guarantee! 

Now start Postfix, saslauthd, and Dovecot: 

What we are going to do now is have fun, if 
not anything else. We are going to log in to Postfix 
and manually run SMTP commands. The purpose? 
Checking if TLS works successfully. 

Type in the following code: 

telnet localhost 25 

chkeonfig --levels 235 postfix on 
chkeonfig --levels 235 saslauthd on 
chkeonfig --levels 235 dovecot on 
service postfix start 
service saslauthd start 
service dovecot start 

You should get the response given below: 


Connected to localhost. localdomain ( 

Escape character is ,A ]\ 

220 ESMTP Postfix 


How To Open Gurus 

Now run an SMTP command at the blank line: 
ehlo localhost 

And scan for these two lines: 



If they show up, congratulations. TLS works. Type in quit and get out of 


Configuring e-mail clients 

For e-mail clients, use the following settings: 

1. Incoming server type: POP3 (or POP) 

2. Outgoing server type: SMTP 

3. Incoming server encryption: TLS 

4. Outgoing server encryption: TLS 

5. Incoming authentication type: PLAIN 

6. Outgoing authentication type: PLAIN or LOGIN 

7. Outgoing server requires authentication: Yes 

8. POP Server: <The server with the MX record> 

9. IMAP Server: Same as POP Server 

10 Usernames: The username in question without the "@ 
domain" part. 
Technical information 

1. Mail storage format: Maildir 

2. Maildir location: /var/ mail/ username [The Maildir is 
actually a file] 

3. User account system: One mail account per user 
in the system. This effectively means that anyone 
who wants a mail account on our server has to have 
a user account on the mail machine. This is a bit 
cumbersome, and can be avoided by setting up and 
instructing both Dovecot and Postfix to authenticate 
against a LDAP server, such as Fedora Directory Server 
or OpenLDAP. This is a huge operation. 

4. Protocols supported: SMTP and ESMTP for the MTA; 
POP, IMAP, POPs (Secure) and IMAPs (Secure) for mail 
client synchronisation. 

Further enhancements 

There are a lot of enhancements you can do to this set-up. 
Some of them are listed below: 

1. Secure the server with SpamAssassin and ClamAV 
SpamAssassin is a spam filter from Apache 

Foundation, and ClamAV is an open source anti- 
virus. Please note, however, that scanning each mail 
against a gazillion rule files to find spam, and then 
scanning them against signatures and heuristic 
rules to find viruses and malware scripts, will take a 
humongous amount of processing power and slow 
the system down considerably. Here's a resource: 
postfixmail. com/blog/?p=360. 

2. Install a Web mail interface. This one is fun. Most, if 
not all, Web mail apps use IMAP, so there're almost 
no disk space requirements on the Web mail-hosting 
Web server. Note, however, that CentOS' old version 
of PHP (5.1.6) means that no decent-looking Web mail 
app will run on it. I tested out RoundCube and @Mail 
Open. But, yes, there's always the tried-and-tested 
Squirely Mail, which more or less works under all 

3. Get yourself a directory server for central 
authentication, and configure Postfix and Dovecot 
to authenticate against them. You'll have an added 
advantage because you can actually get machines 
themselves to authenticate against LDAP, and you'll 
never need an /etc/passwd file again. I'll cover Fedora 
Directory Services at the end of the series, unless you 
people want it earlier, of course. 


What will we do next? Let's see... How about a collaboration 
platform? Video conferencing, Internet Relay Chat, maybe 
Jabber, a groupware suite... yeah. That'll be it. And after 
that? How about a storage grid? With multiple low-powered 
machines handling about 50 to a 100 terabytes of Network- 
Attached Storage? Patience... EE3f w T^ 

/- n 


How To Forge Perfect CentOS Server article: www.howtoforge. 

By: Boudhayan Gupta 

The author is a 14-year-old student studying in Class 8. He 
is a logician (as opposed to a magician), a great supporter of 
Free Software and loves hacking Linux. Other than that, he is 
an experienced programmer in BASIC and can also program in 
C++, Python and Assembly (NASM Syntax). 

TechnoMail - Enterprise Email Server 

Anti SPAM, Anti Virus, Email Content Filtering 

Firewall, Internet Access Control 
Content Filtering, Site Blocking 


Bandwidth Management System 


Managed Email Hosting Solutions 

1 , Vikas Permises, 1 1 Bank Street, Fort, Mumbai, India - 400 001 . Tel.: 91 -22-6633 8900 Ext. 324. , LINUX FOR YOU JUNE 2009 | 59 

the UNIX hacker culture. With its extensive supportJand 
simplicity, Vim stands out as a unique text editor with 
numerous features. It's both simple and powerful! j 

>e come across numerous 
GUI text editors like 
KWrite and Gedit, with 
which you need to use the 
mouse extensively to access some of the 
features. Unlike these, Vim doesn't support 
the mouse. Instead, it stays close to the 
command-line with extensive key-bindings 
support. Many believe this is a feature, 
because it facilitates better control over 
text processing with simple commands. 

This article will focus on how Vim can 
help get going with your text editing tasks. 
If you are new to Vim, open a terminal 
session and type the following command: 

$ vim test.txt 

This will launch the editor. Press T 
and start writing. You might feel a bit 
awkward at this stage since you are more 
comfortable with GUI text editors and 
probably might think: what's the point? 
Well, Vim has its many advantages. Let's 
create a large file using the dd command, 

filled with Os. Now open that file in 
GUI editors like Gedit or KWrite. What 
happens? It takes a lot of time to render 
the text, and eventually crashes, right? 
Now, try to open it with Vim, and see the 

Let us have a roundup of the treasures 
of Vim: 

Mode-controlled text editing 

Regular expressions support 

Text replacement, searching, deletion 

Auto completion 

Auto indentation 

Split windows 

Multiple file tabs 

Syntax colouring 


Better help 

Sleek and simple 

Installing Vim 

On most of the distros, Vim is installed by 
default. However, if you're on an Ubuntu 
system like me, you'll need to download a few 
extra packages to get the full functionality. 


How To Open Gurus 

Open a terminal and run the following command: 

$ apt-get install vim-full. 

Time to get started now. Open a terminal and type 
the command given below: 

You'll see something similar to the screenshot in 
Figure 1. 

To open or create a new file, type... 

$ vim hlepath 

Vim opens in the command mode where it accepts 
Vim commands only. To edit the text, press Y to switch 
to Insert mode. Now you can type text. The cursor can 
be moved using standard keyboard arrows or using the 
keys given in Figure 2. 

To exit from the Vim editing mode, press ESC. Now, 
to save the changes to the file, type :w ; to save and quit, 
type :wq ; and to quit without saving changes, type :q! 

Let's now look at some of the important operating 
modes of Vim. 

Command mode: We can use different letters or 
letter sequences to command Vim operations. Vim 
commands are case sensitive. The ESC keystroke can 
terminate the command. 

Insert mode-. When the editor is in Insert mode, on 
the footer part you will see the '-- INSERT --' status. To 
switch back to command mode, press ESC. Text can be 
inserted in this mode. Press T to initiate Insert mode. It 
is possible to initiate Insert at different portions of the 
text. To insert at the next new line, press b'; to insert 
at the new line before the current one, press '0'; and to 
insert at the end of the line, press 'A'. 

Command line mode: In command line mode, we use 
commands starting with ':' which will show commands 
that we're tying at the moment, at the footer part of the 
editor. For example, .-help, :wq, etc. 

Basic operations 
To open and save files 

To open files with Vim, use the following command: vim 
file. To open multiple files as split windows, type: $ vim 
-0 filel file2. To open a file from the Vim command-line, 
use the following: :efile //Auto complete is supported 
by pressing TAB. 

To save the changes to the currently opened file, 
press ESC to switch to the command mode from the 
editing mode, then type :w and press ENTER. To exit 
Vim after saving a file, type :wq. To just quit without 
saving, use :q! To save the current file as a new file, use 
the command line :w new^filepath. 

riilflriW & Jfinliul- Aii^fa a 

fJ* £d* ^i*+ Jerrraia] Jit* U|lf 

frjr if** ttMl^ta' El At. 
Ub l-e upm -t#urci ird Irtily tilt t nbut *l* 

becsae a -ealiEcTfrl Via user! 
type :hel& rcfliUr^Eer* fbf UtfflfMfTlC* 

Tjpt :q<tmtn- ft *KlI 

tyfe :help4MLcf> W <4l> ffli" CA-lirte help 

type .help -itri-LEHi J ■■[■'. ttrr fir version iFit* 

Figure 1: The Vim editor 






Figure 2: Cursor navigation 

Manipulating files 

Cut, copy and paste are essential features of any text 
editor. To cut the current word, place the cursor at the 
starting character of the word and use cw\ To cut the 
current line, use cc in the command mode. To copy the 
current word, place the cursor at the starting letter and 
use 'yw', while to copy an entire line, use yy\ To paste 
content, place the cursor at the position where the 
contents of the buffer need to be placed, and press p\ 
To remove a word, place the cursor at the starting 
letter of the word, and press 'dw', while to remove a 
line, press 'dd', and to remove a character, press x\ To 
undo the previous action, press u\ while to redo an 
action, 'Ctrl + r\ To repeat a previously performed task, 
press '.' To list the available undo tasks, ':undolist'. 

To search, substitute and replace 

To search for a word/sentence while in the command 
mode, type /word and press ENTER, where 'word' is 
the word you're searching for. To repeat the search 
in the forward direction, press /z, while to reverse the 
direction of the search, press ?. 

To replace a part of the text, use: 
■ :%s/word_pattern/replacement_text/ - replaces I LINUX FOR YOU I JUNE 2009 I 61 

Open Gurus How To 

tte fc» Ifxw kfTT-ni Hc^t 

*:-tiuw *SldlD .Ho- 



1 " r I vnf-4;Mr^l*;VJf ** 1 

tctnf 1 ■"%&' JrtAt J : 

frLItT | "■•id" , vif J ; 





■ ■ Kiywrt CMplrtian \1tt\ ik**. :1 antral 

Figure 3: Auto completion in Vim 

*r BM Vn ^^m 1 »r* 

ihii Li fill L 

lfcn IIS Fi1# 1 


Figure 4: Using multiple files side-by-side 

the first word of every line 

■ :%s/word_pattern/replacement_text/ - global 
replacement of the word 

■ :%s/word_pattern/replacement_text/gc - 
replacement with interactive Yes/No confirmation 
%s represents the entire text in the file. It is also 

possible to use a range of lines for replacement. In case 
we want to use a replacement only between the lines 1 
and 25, the above command can be used as: 

: 1 ,25 s/word_pattern/replacement_text/ 

You can also use regular expressions for 
replacement and searching. This is similar to the sed 
(stream editor) syntax. 

Repeating commands N times 

If you want to repeat a specific command TV number of 
times, prefix the number of times before the command. 
For example, to copy the next five lines, use 5yy, where 
yy is the command for copying 1 line. To move the 
cursor to the eighth word of a line, use '8w\ 

Selecting text 

Vim has an awesome option to select a portion of text, 
just as we do using a mouse in GUI-based editors. 
The special purpose option is called Visual Mode. 

Press V in the command mode and navigate the 
cursor— the selected text will be highlighted. After 
making the necessary selection, press a command for 
an operation. 

For example, press V, and make selections by 
moving the cursor down and right. For deletion, press 
'd', or any other required operation. 

Advanced Vim features 

Vim is an advanced editor that has capabilities 
like spell check, auto indentation for different 
programming languages, auto-completion, syntax 
colouring and more. Syntax colouring and auto 
indentation enables programmers to write code in an 
artistic way, making the code more pleasing to the eye. 
Vim also supports colouring schemes with themes. 

Syntax colours and auto indent 

To enable syntax colouring, use the command line : 
syntax on. 

Vim supports many programming languages for 
indentation. To enable indentation, use the command 
line, :set autoindent. To explicitly enable C syntax 
indentation, use :set cindent. 

Spell check and auto complete 

Vim also supports spell checking. It highlights wrongly 
spelled words with a different colour. To enable 
spell checking, at the command line, use isetlocal 
spell spelllang=en_us, for US English while writing a 

For auto completion of a word or a keyword, type 
a part of the word and press Ctrl+N, after which a 
pop-up will show the list of available words (Figure 3). 
You can scroll through the word list by pressing Ctrl+N 
repeatedly. Auto completion works for words that have 
already been typed previously in the current file. 

Install the ctags package if you want inbuilt 
auto-completion support for various programming 
languages as well. 

Split windows 

There are certain occasions when you need to work 
with multiple files simultaneously. Normally when you 
want to refer to the contents of a file while working on 
another file, you open two instances of editors side- 
by-side. But Vim is intelligent enough to open multiple 
files simultaneously. 

To start a horizontal window by splitting the 
current Vim instance, use the command Ctrl+w+s, or 
at the command line, use .-split. For a vertical split, type 
Ctrl+w+h, or at the command line, :v split. Refer to Figure 
4. You can now switch between different split instances 
using the Ctrl+w+w shortcut. These multiple splits can 
be further split using the same commands. The split 
windows act as separate instances of Vim so that we can 

62 | JUNE 2009 | LINUX FOR YOU | 

How To Open Gurus 

open and work on different files, side by side. 

To exit from a split window, use the Ctrl+w+q 
shortcut, or at the command line, use :q! 

While we're on the subject of split windows, there 
is a command called vimdiff for viewing the difference 
between two files. Suppose you have two versions of a 
text file, and you want to look at the changes made and 
compare it with the original, use the command: 

$ vimdiff filel file2 

When you scroll through the file, both file instances 
will be scrolled. Sounds interesting, right? Take a look 
at Figure 5. 

Vim also supports window tabs. To open a new 
tab, at the command line, use itabnew. Now to 
switch between tabs, use the Ctrl+PAGEDOWN or 
Ctrl+PAGEUP shortcuts. 

Line numbers 

In certain cases, especially while writing code or 
editing a script, it is convenient to see line numbers 
for the text file. To enable line numbers, use the 
command :set number. To disable the function, use iset 

Execute external commands 

While working from Vim itself, you can execute 
external commands. To execute and view the output 
of a command, at the command line, use :!command, 
where command' is the command you want to 
execute. For example, to execute Is, try :!ls 

It is also possible to paste the output of the 
executed command to the currently working file by 
using :r '.command. For example, :r Is / 

Vim has awesome features to process the contents 
of the file using external commands and to paste the 
output back to the file. It is also able to process text 
between a range of lines. 

There are situations when a part of the text needs 
to be processed. Vim makes it convenient to process a 
given range of lines using external commands. 

tr is a utility to perform translations based on the 
sequence inputs. We can easily perform translations 
such as lower case to upper case conversion using tr as 
the following bash command line. 

slynux@slynux-laptop:~$ echo "This is a line of text 1234" | tr 'a-z' 'A-Z' 

Suppose we have a large text file and the text 
between the lines 3-5 is to be converted to upper case. 
We can perform it easily using the external commands 
methodology like :3,5 !tr 'a-z' 'A-Z', 

which instructs Vim to perform tr 'a-z 'A-Z' for the 
text between the lines 3-5. 

w tm »■ *— " p* ** 

» .IMLit.Vri 

Bj'mlmm drill M 


Figure 5: Files opened using the vimdiff command 

In this way, any kind of external command can be 
coupled with Vim to process any part of the text in a 
file, in a handy way. 

Moving the cursor in a file 

Vim enables moving the cursor to different positions 
by accepting different references. For programming 
tasks, often compile/runtime errors occur and 
compiler return errors are noticed with line numbers. 
In such cases, we need to move the cursor immediately 
to the error line referenced by the line number. To 
move to a line referenced by a line number, use : 
line_number. For example, to move to line 50 use :50 

Essentially, we can also perform some actions using 
the corresponding commands: 

■ Move cursor to beginning of line - 

■ Move cursor to end of line - $ 

■ Move cursor to beginning of next line - + 

■ Move cursor to end of file - G 

Scrolling page by page is very useful while dealing 
with large files. To do so, use Ctrl+j 'for forward scroll 
and Ctrl+b for backward scroll. 

Getting help 

Vim has an embedded command line called ihelp to get 
help with different operations. For more information 
on making substitutions, use ihelp substitutions-, for 
search, use ihelp search and so on. To quit from help 
mode, use :q 

If you would like more insights into the Vim editor, 
I would like to recommend A byte of Vim written by 
Swaroop C H []. I guess 
that's all for now. Hope you will join our Vim club soon. 
Happy hacking, till we meet again! EEf * t^ 

/ -\ 

By: Sarath Lakshman 

The author is a Hacktivist of Free and Open Source 
Software from Kerala. He loves working on the GNU/Linux 
environment and contributes to the PiTiVi video editor 
project. He is also the developer of SLYNUX, a distro for 
newbies. He blogs at I LINUX FOR YOU JUNE 2009 I 63 




Network Device 

Introducing Nipper, a tool that enables network administrators, security 
professionals and auditors to quickly produce reports on key network 
infrastructure devices. 

t's no secret that in order to 
ensure the protection of your 

network perimeters, network 
C_^^ devices must be audited regularly. 

Securing your network from attackers must 
be driven by security assessments done 
externally and internally. While assessing the 
security posture of your network internally 
you could take the following steps: 

1. Interview network and security 
administrators to understand the current 
network set-up 

2. Review network and routing rules 

3. Review systems configuration for 
adherence to hardening guidelines 

4. Review remotely managed security 

5. Review logging facilities 

The effort required for this security 
review of network devices will depend on 
the number of devices in scope of the review, 
the types of devices (routers, switches and 
firewalls) and the number of rules configured 
to run this device. 

For example, if you have around 20 
network devices (namely routers, switches 
and firewalls) and have to perform a 
security configuration review, it will take 
large amounts of time to go through 
each line of configuration and complete 
the exercise. During a manual review, it 
is quite possible that the auditor could 
miss/skip some rules. To avoid defects in 
the report, one should also involve a tool- 
based approach to audit devices. Nipper is 
one such open source tool that can parse 
network device configuration files and 
carry out a security review of devices. 


Note: RAT (Router 
I Audit Tool) is a 
network device 
configuration audit tool from CIS (Centre for 
Internet Security— www. cisecurity. org/ 
bench_cisco.html). This tool only works for 
Cisco 10 S and PIX firewalls. In this article we 
will discuss Nipper, which can cover many 
networking devices from various vendors. 

The following are the devices that 

Indroduction Admin 

Configuration f 
& Backups 


Routing Protocol Security 



n . r r , VPN Configuration 

Device Configuration 

Authentication Services I Audit Area Remote Logon 

& Settings Services & Settings 

Disable Unnecessary 

IJiM, ! !JJ^4™' l fl1li'M l i 1 l -lll 

Figure 1: Network device audit area 


CIko Rwrt*r 5«urlty Report 


l_i =_j; 

Figure 2: Sample Nipper HTML report 

2.3. Weak Password ■■ Key 

OtnoivMlwi: Stivq I 

pait»ortfi bt rnmJt up ef ■ hilt *t(pl cJmdm hi 
2.4. EIORP Authentication 

*0Mf Upf*CH» > iMtTCK* CltnOPi Hrf [HI 

Figure 3: Sample of Nipper-generated report 

Nipper supports: 

1. Firewall (3Com, Checkpoint, Cisco, Juniper, Nokia IP, 
SonicWALL, Nortel) 

2. Router (Cisco, Bay Network, Nortel) 

3. Switches (Cisco, 3Com, HP ProCurve, Nortel) 
Table 1 lists the devices and command switches that 

must be provided while running Nipper. 

In order to carry out a network device security audit, 
Nipper checks the following items in a configuration file: 

■ Protocols in use 

■ Routing configuration 

■ Authentication and password 

■ Login, log-on banners and timeouts 

■ Operating system versions 
" Logging 

■ Encryption/encoding 

■ Network filtering 

■ Time synchronisation 

■ Console/VLAN/VPN configuration 


Hardware & Networking 

1 1 Courses Offered '« 


^^ red hat 


■** Excellent Infrastructure. 

■flf Certified Faculties. 

D* New batch starts on every Monday. 

M& Register for RHCE exam and avail 

5 DAYS FREE intensive examination 

coaching . 

Plexus Internetworking 
Technologies Pvt.Ltd. 

#31/14, Burkit Road, T-Nagar 

Chennai-600 017. 

Ph:044-2433 7355 Mob: 99401 66510 



•Other Technical Partnersi 



1 1 1 1 . 1 1 » . 









Installing Nipper 

Nipper is available for both the Linux and 
Windows platform. It can be downloaded 
from For 
Windows, it's quite straightforward. Download 
the zip file containing the Nipper executable, 
extract all contents and use the command 
prompt to execute nipper.exe. 

Installing it on Linux is also simple. Two 
packages are required on Linux: libnipper and 
nipper-cli. Download the source code and follow 
the steps mentioned on 
install.php. The steps to install from source: 

1. Download and extract. 

2. Create a build directory in the source code directory 

3. Run the cmake command in the build directory 

4. Run make and make install 

Alternatively, you can use the BackTrack Live CD to use 
Nipper without the requirement for a local installation. 

Getting started 

To begin with, you need to provide the network device 
configuration file as the input to Nipper. The tool then 
parses this file and analyses each Access Control List 
(ACL) and Access Control Entries (ACE). Shown below 
is the sample output displaying Nipper running on the 
BackTrack LiveCD: 

bt nipper # nipper -ios-router -input=router.conf --output=ciscoreport.html 
bt nipper # 

Nipper is capable of exporting reports in HTML 
(default), XML, Latex and ASCII text report formats. Figure 

1 command switches 


Routers Switches Firewal 



(Open Source) 


First time device 

1 ^^flwo 1 


Adding rules to 
configuration file 

Bl^R ^H^ffinj^^ 

Device Type 

CLI Option 

Checkpoint VPN-1/Firewall-1 


Bay Networks Accelar 


Cisco Catalysts (IOS) 


Cisco Catalyst (NMP/CatOS): 
i) NMP based catalyst 
ii) CatOS based catalyst 


Cisco CSS 


Cisco Routers (IOS) 


Cisco Security Appliances (ASA / PIX / 


i) Cisco ASA Security Appliance 
ii) Cisco PIX Security Appliance 
iii) Cisco FWSM Security Appliance 


Juniper NetScreen Firewalls 


Nokia IP Firewalls 


Nortel Passport 


SonicWALL SonicOS Firewall 


Table 1 

Figure 4: Best practices for a network device review 

2 shows a sample of an HTML report output. Command 
line options for selecting a report format are as follows: 

■ --html for an HTML report format 

■ -xml for an XML report format 

■ --latex for a LaTeX report format 

■ --text for a typical ASCII text report format 

As you're aware by now, Nipper exists to report 
vulnerabilities in network configurations. As part of 
this reporting, Nipper includes the following sections: 
observations made during audit, the impact of a 
security weakness, ease of carrying out the attack, and 
recommendations to remove the security weaknesses. A 
sample report is shown in Figure 3. 

Best practices 

Before we close for now, here are some of the best practices 
that should be followed in your current IT set-up to ensure 
a secure network perimeter: 

1. Develop a security/hardening checklist for each vendor 
product. Ensure that it is referred to before a device is 

2. Device roll-out to production must happen through a 
change/IT request. The security team should validate 
device hardening with Nipper, while going through a 
manual review of ACLs for that particular set-up. 

3. Track security notifications for network products that 
are installed on the network. 

4. Network security reviews and audits must be 
conducted on a frequent basis by external network 
security consultants. 

Figure 4 represents the best practices for a network review. 

Of course, there's more to be said here, but I'll leave 
it to you to test Nipper and find out how suitable it is for 
your network auditing requirements. Point your browser to 
nipper, titania. co. uk to get started. EEf " t^ 

By: Rajinder Singh 

The author is an information security consultant at TCS. A 
penetration tester by profession, he has been using Linux 
since 2002. 


to Beat the Heat 

SUBSCRIBE & Get Assured Gift 

24 CD Wallet 

With 1 Year Subscription 

Watch with Pen 

With 3 Years Subscription 

Executive/Laptop Bag 

With 5 Years Subscription 


Unit Price 

5 Years 

3 Years 

1 Year 

Electronics For You (EFY) 


1680 □ 

1150 □ 

430 □ 

Electronics For You (with CD) 


2520 □ 

1725 □ 

645 □ 

Electronics Bazaar 


2100 □ 

1440 □ 

540 □ 

Linux For You (with CD & DVD) 


4200 □ 

2880 □ 

1080 □ 



2090 □ 

1430 □ 

530 □ 

Facts For You 


4190 □ 

2870 □ 

1070 □ 


_Company Name_ 


s Don't Miss A Single Issue! 

y Ensure Regular Supply 

Y FREE Replacement Policy* 

Y Get Your Money Back if Not Satisfied** 

Y Order Now For FREE Home Delivery 

* Replacement will be made upon receipt of the 
damaged / non-receipt copies within 30 days of 
its publication 

** After three months, if you are not satisfied with 
the magazine, your balance amount will be returned. 


Mailing Address_ 




Pin Code 



Subscription No. (for existing subscribers only) _ 

Please find enclosed a sum of Rs 

_by DD/MO/crossed 

I would like to subscribe to the above (y)marked magazine(s), for the period 

cheque*bearing the No. dt. in favour of EFY Enterprises Pvt Ltd, payable at Delhi. (*Please add Rs 50 on non-metro cheque) 

or charge my credit card □ VISA 

□ MasterCard Please charge Rs. 

against my credit card No. | | | [ | | | | | | | [ | | | | 

Date of Birth 



_(dd/mm/yy) Card Expiry Date _ 



Signature (as on the card) 

Terms:- # These rates are applicable for new subscribers as well as renewal by existing subscribers. # The rates are valid for subscribers within India only. # Please allow 4-6 weeks for processing of 
your subscription. # Gift against cheque payment will be sent after clearances of the cheque # No discounts will be available for subscription agencies under this scheme. # The models displayed and 
your gifts received may be slightly different, but will be of the same brand and value. # Disputes, if any, are subject to exclusive jurisdiction of competent courts and forums in Delhi/New Delhi only. 

Send this filled-in form or its photocopy to : 

Offer Valid till 30th June 2009 



EFY Enterprises Pvt Ltd D-87/1, Okhla Industrial Area, Phase 1, New Delhi 110 020; Ph: 011-26810601-03; 
Fax: 011-26817563; e-mail:; website: 


How To 

Automating UNIX Administration 

A Puppet show can turn out to be real entertainment for UNIX administrators. 

f**7^ the UNIX operating system 

\^y everything is a file, which makes 
it an easy-to-manage and 
C_^^ administrator-friendly system. 

The traditional way of managing UNIX was 
to use the telnet interface, but being a plain- 
text protocol, telnet exposes you to the risk of 
network snooping and compromise of login 
credentials. SSH works on an encrypted channel 
to overcome the snooping issues. A UNIX 
administrator can SSH into the box from a 
remote machine and change the configuration 
or execute commands remotely. 

Generally, it is considered a good practice to 
take a configuration backup before making any 
changes to the production configuration so that 
the old configuration is available for roll-back. 
Also, as a part of the organisation's policy, the 
same base configuration should be configured 
on all the servers to reflect consistency and as 
a server-hardening practice. A majority of the 

problems in the UNIX environment occur due 
to ad-hoc changes, which can be mitigated 
by following proper change management 
procedures. Handling and monitoring ad-hoc 
changes, and restoring the previous state, 
remains a challenge for organisations. 

Meeting such challenges is quite workable 
for a small set-up of 1-20 servers and a dedicated 
UNIX administration. But during hardware 
failure or other problems, where the servers 
need to be reconfigured from scratch, it takes a 
lot of effort and time in restoring the servers to 
the previous state. To handle such scenarios, a 
quick solution would be to hire another UNIX 
administrator who could act as a secondary 
resource and offloads other activities from the 
primary resource during disaster conditions. 

Think about a scenario of managing a 
globally-distributed data centre with 500 '"NIX 
servers or more, comprising Solaris, Debian, 
Ubuntu, Fedora, CentOS, etc. Here, servers 


How To Admin 

are running with the same base configuration and packages, 
where configuration files need to be checked-out to a version- 
controlled repository. Only planned changes are allowed and 
the previous configuration state is restored for unplanned 
changes. Additionally centralised user and policy management, 
along with automated configuration recovery during disaster 
conditions are required. In such a case, building a team of 
10-20 administrators would not be a recommended approach. 
Rather, using a centralised configuration tool to automate the 
administration tasks would be a better option to follow. 

Along with commercial tools like BladeLogic and OpsWare, 
there are a couple of open source systems automation and 
configuration management tools available like Bcfg2, Cfengine 
and Puppet. Cfengine has been an administrator's favourite 
configuration management framework since the past few years 
and is widely being used by many companies. Puppet turns 
out to be a next-generation configuration management tool to 
overcome many of Cfengine's weaknesses. 

Puppet is written in Ruby and is released under the GPL. It 
supports a number of operating systems like CentOS, Debian, 
FreeBSD, Gentoo, OpenBSD, Solaris, SuSE Linux, Ubuntu, 
etc. Puppet is being used by many organisations including 
Google, which uses it to manage all Mac desktops, laptops and 
Linux clients. A list of other Puppet users can be fetched from 

Puppet installation 

Puppet installation is fairly easy and is, in fact, a matter 
of seconds. Puppet runs in client-server configuration, 
where the client polls the server at port 8140 every 30 
minutes to check for the new instructions or to match the 
configuration files. The client also listens to a port to have 
push-updates from the server. In Puppet terminology, a 
client is called a Puppet node and a server is called a Puppet 
master. Figure 1 shows the set-up. 

The following few steps demonstrate the installation 
steps for the CentOS operating system— a similar approach 
can be followed for other supported systems: 
On the server side: 

1. Define the hostname for server as 

2. Puppet can be installed using yum, but packages are not 
part of the default CentOS repositories or installation DVD. 
Even though it is available at DAG's repository, the versions 
are outdated. The best repository for Puppet is EPEL (Extra 
Packages for Enterprise 
EPEL). Puppet RPMs can either be directly downloaded 
and installed, or the yum repository can be configured to 
do the job. To use the EPEL repository, run the following 
command as a root user: 


3. Now install the Puppet server by issuing the following 

yum install puppet-server 

4. Install ruby-rdoc to enable Puppet command line help: 
yum install ruby-rdoc 

puppet Master 

Figure 1: A typical Puppet set-up 

5. Now, create a sample manifest file to start the Puppet 
server. This is just a test manifest and more complex 
manifests can be created using this tool, which will be 
demonstrated later. Put the following contents into the file 
using Vim or any other text editor. The purpose here is to 
create /tmp/testfile on a node (puppet client) if it doesn't 

class test_class { 

file { "/tmp/testfile": 
ensure => present, 
mode => 644, 
owner => root, 
group =>root 

node puppetclient { 
include test_class 

In the above content, the upper section defines a 
class named testjdass that ensures that /tmp/testfile with 
the defined permission is present on the client where 
the class will be included. In the lower section, client 
puppetclient includes the testjdass and Puppet will create 
the file with the set permission on puppetclient if 'it doesn't 
already exist. Once done, start the Puppet server using the 
following command: 
service puppetmaster start 

6. The Puppet server is now installed and configured to listen 
to incoming connections from agents. Default installation 
comes with Webrick, which is not a good Web server to 
handle loads from a higher number of Puppet agents. 
Apache and Mongrel can solve this problem. Refer to the 
Puppet wiki for instructions on configuring Puppet with 

On the client side: 

1. Define the hostname for the server as puppetclient. 

2. Configure the EPEL repository using the following 
command again: I LINUX FOR YOU JUNE 2009 I 69 


How To 


3. Install puppet and ruby-rdoc. 

yum install puppet ruby-rdoc 

This completes installation of the Puppet server 
and client. 

Before proceeding further, make sure that the 
systems timing for the Puppet server and client are in 
sync. Now, from the client, issue the following command 
to get approval from the server as its subscriber: 
puppetd -verbose -server 

This will display the following output: 
info: Creating a new certificate request for 
info: Creating a new SSL key at /var/lib/puppet/ssl/private_keys/ 
puppetclient. domain, com.pem 

In the above command, the client has raised a 
request to the server to be registered as a subscriber. Now, 
the server needs to approve the subscriptions. To view the 
pending subscriptions, issue the following command on 
the server: 
puppetca -list 

The above command will give the name of the node 
that needs to be approved or signed by the server. In the 
next command, sign that node: 
puppetca -s 

Once the client is approved by the server, the class 
assigned to the client will be executed. In this case, a file 
/tmp/testfilevM be created 
If the created file is deleted, it will be recreated on the next 
polling, i.e., within the next 30 minutes. 
Once the basic Puppet infrastructure is ready, different 
classes can be created to accomplish different tasks. 

Some sample Puppet classes 

Below are a few sample classes for quick reference. 
Sample 1: To install Apache and run the httpd service: 

class apache { 

package { httpd: ensure => installed } 

service { "httpd": 

ensure => running, 

require => Package ["httpd"], 



Sample 2: To stop the mdmdp service: 

class redhat { 

service { 


enable => true, 

ensure => stopped, 


Sample 3: To execute commands: 

class start_vhost { 

$noop = true 

exec { "/usr/sbin/start_ws": } 

exec { "/usr/sbin/start_vhost": } 

Sample 4: To start a service as per the remote operating 

class httpd_service_start { 

case $operatingsystem { 

redhat: { service { "httpd": ensure => running }} 

debian: { service { "apache": ensure => running }} 

default: { service { "apache2": ensure => running }} 

Sample 5: To create a user: 

class virt_users { 

@user { "jsmith": 

ensure => "present", 

uid => "507", 

gid => "507", 

comment => "John Smith", 

home => "/nfs/HR/home/j smith", 

shell => "/bin/bash", 

Sample 6: To manage Cron job: 

class set_cron_syscheck { 

cron { "syscheck": 

command => "/usr/bin/syscheck", 

user => "root", 

hour => "18", 

minute => "0" 



Sample 7: Transferring a file from the Puppet server: 

class httpd_conf{ 

file { "httpd.conf": 

source => "puppet://puppetmaster/httpd/conf/httpd.conf" 

Of course, much more detailed manifests can be created 
to manage multiple servers with heterogeneous UNIX 
operating systems. Subversion can be configured with 
Puppet to store configuration files and track changes, so 
that the changes can be reverted to a previous state. 

Reporting is one of the important aspects of a 
configuration management system. Reporting from a 
configuration management system can provide information 
on performance and compliance to policies and standards. 
Puppet's reporting engine is limited at this stage, but still allows 
some useful basic reporting that can be graphed and displayed. 

So, all in all, Puppet can be a real boost for UNIX 
administrators. ESf*^ 

By: Dhruv Soi 

The author is the founder and principal consultant at Torrid 
Networks Pvt Ltd, and chairs OWASP India. Torrid specialises 
in information security and open source consulting services. 
OWASP is a worldwide free and open community focused on 
improving the security of application software. Dhruv can be 
reached at 


Puwcr^d by 


fndia's No.l Job Site 

Pn>S: Pnnripai hiL|in^Mr 

Company. Yahoo 5othv*ra Development ln«i Pvt 


Prof**; Aj a Principal lngir*«r |Pf f r yo-w iob wdl 

entail guying and menlofeig * development learn 

with <Iean architecture ft sound design A- woiVing 

with leadx & architect* ecron geographies to inkkji* 

in fere perafci lily and mafidrnCEe reus* 


Location: Bengalupu 

final. iDcjei^rjyr^ 

PoU: 5r Wintd Support RlM 

tampany. r-uHeiiiy Irifoi iiwdiuu Yeivk*s 

Frnl-lr - ArlvariEed system adrreniitrator \^illi tocuted 

on Mkri n w>h oprc.Ttmg ^yiiEerei ^Window; 7DDD 4 and 

Wihdows 2003} die deshed Expel ience with oiie or 

man- cohimerdfil UNIX. Haven {Sclahi, A!X| or open 

source (hnux,, Froe-ASO} platforms ji plm 


Location: Chenrui 

Frnaii Ranjan.Chabraborty-^fniicom 

Poit: S' Implementation Enginecj 

Company; Conreclkva SyMemid'l Pvl. L Id. 

PrnfJr. '.Vn-rkinq Knowledge of conducting Usef 

Acccplante T*nl will be desired Hands-on experience 

in Oiacln and Unix.'" SoIjiiv LiritiK « desired plur, an 

eape-npnee m M / St.)l Programming & Shel 



Ic^diiDn: Kalfcau 

Lmrtd SgOIW4mll^cenn4Ctuiy¥t«ml,eam 

Post: Tec KlotJ CftA 

Company; CaUabera 

Pro I Ip HesponvbiliSirs Deiign n-nd Archireclure 
LogicaLr PhY*ca> Data Wedding. OimenM&nal 
Modeling,, FBI1itij»te in utuj* a* the database 
rcuiunze.T-xpcricncB wrHi MP-RAS Ut\ik jnd L mine 
operating HtysJpjm rtdefued 1 , 


Localran: Bangalore 

f-m.iil nikitii s-.ibr.iyii.Srnlljibfir.i cam 

PaiL Ifriw SyVem AdmnixEiator 
Company: Vpnnnn Technology Salulxmii Pvt, I td 
Ff ofa>: Must have 6 ■ 1 dinars of Unix systems 
engmeerevg and adnnnLiErafcion expe?renco. Should 
he rnmforlaolp with jit aa;pec1? of opening lyste-n 
administratis n fw example, configuration, of n-nm" 
lyiCtMii:,, w*lem riklallaliuii and lui 1 1 gL ration 
printer lyitemi, lunriamn-nlali n1 5*cunty, milalling 

third- party wrfware. 

E*p a- 10". Location Gurgaon 

tn-iJrl prawwna.nclfcoicf' 

Past Backend engrtrer 

Company: N j Vshni Tcchnologwi India Pvl. L*d 
Pro-fJa- 0*99 trowtedge in B«ck«ndv layout Will bi 
nqudrm 1o purlieipat* m tuekend deiign oi Urg* 
SCC qhip. Chip claccnwnl £ timing oplimiralinn. 
EMpcf1i» wlh an* or mem oF icripting Unggag« 
such h PffL/ 10/ Fylhon/ SImH ts a rnusl. Must be 

wry prnlfcfirfi E waiVing an Linur/ Unir bated 


Eap. j- 10, LtKaliOJi. rhjde^aLiaU 

I mad- caipefSj^nak^haEechnalogios rom 

Naukrl Inhsl 

Pnst Developmcni Manage 

Company: InFormdeca Buiinrs>s SotuEion: 1^.1 Lid. 
PYofil*; BS" Mi' PI* D m C©inpu»*r Science iviih 10 * 
ywr* of H mptrwi^e, prtfeiably m 1|gD pt**s rtrpng 
wojHfitn^c in JAVA, J2LE and othvr p^eHjp.nnminqi 
]*iguag«. Knowledg* ftF muttjple opefaliruj irtwmi 
4 mndoMH & Uniji ■ So!an\ HP; UX, Aff . Unuii) and 
I ■ i ■ ■ ■ i |.i ! f- 1 o( wiiling poi EaWe tode bdrared 

lip 10-13 

location: Bangaloit.' 

Finail. SiWi:eLyjiik.i1biing : irirornulka.4orit 

Posr St. ReTMie EoqinMf « fiulld #n«d HeleAff, Mavpn 

C*mp#ny- Firfl Snttifli Corporation FVt itd 

P^ohle. EjiptTifntr with Ja^a-bawd -dp plitaiioiln- in .1 

btiiEd >.rijj| iuii. paciiagkng, oi inkplniirnlatloni 

1.J jiir. -iy. 5'iould haw ah vxpusuiv to 'x'IjEiu*i ul 

DRf J^, wilh ^Qt fl-qi-wi^nc* bving v^ry holplur. 


I oration" Bangalo^ 

Email: msonia^liralam.eom 

Post Project Manager- Web Applications 
Company: Compare nlobni^e L".d. 
Profile: Knowledge in lyalvrr-^ nunagentenl i>rd 
propeci management uibd lechn'taJ compaleiiLe in 
Pnlabas* and Unix/ Linm adrnim\EraE>on n d**virpd. 
C.vndidaV muTt be- RF / MCA/ fl T«-h. and prefrrably 
wilh managpmrfml hackgioiind 
tnp. tf T0 r Locauon: DeJhi 
tmail. i4ingeeLa(^4ilDba»in 

Poit r mbodded ProleliiibnaSv ArchilKE 

Company: Xavienl Inlorninlion 'Semcei- 

PWFile - Wil ! br rpspon^ibV For oooFdioariion between 

of^Sihoir A anskUi, providing mkitinn*. A dovign ft 

dtfwla-p *ppli«l3&nj, 

Eq>: ^ tt r LocdUen: Noida 

Email; hijmmr*Jo>ure:eSMvienl.cjam 

Post Solution AKhikect- Henwdy 

Company Cncsson I ndia PVI Ltd. 

Profile: r^posure to work wilh International 

Customers-., tace to iace dralog with Cjstomeri n 

disind plus-qood haiidf cm experience on Oral* 
Application St^vflr, PVSQL, JDltC, Workfig hnowltdge 
on UNIX OS wch ai HP-UX, htlifiiy linux It Scripting 
like: tat, KUfr n esuntiflJ 

Exp: 9-14 r Location: Guigdon 
fc»nail vihiam.w^rma^ei-Hisio-ii.EDfn 

Paul. Telecom developer TCAP ft prDtacol ilaclcv 
Company: Ariire. Informalion Sy^Enir. PWI. ttd. 
Pinlilk?: lf?iwom dp«"lonn , w«vi: e^pnrinrp specifically 
good in pratocoFs uufi a& ft AP A- p*ntncok *t*csa 
W7 - MTP3, SCCR ISUP, TU^ IUP SIPj, CaU setup A 
proce^n*g, Billing ^yaEeni eU 
Exp: S-TDL Location: Chennai 
Email, kevini^ 

Poil: Java. JJee Technical Airhilecl 

Company: Qbj#et Frontion- S-dh\arp- F\-t I td 

Profile-: Technical architect experience plus an 

experience in handling JiEE product development is 

deseed, should possess- a Bachelors or Masters 

degrre >n T-'Cornp Scence or rclatiKl tield tJandi on 

expw lence cm Linux/UNIX envicuikiiienti will be 


Exp ft- 1 1. location' Chennai 

Fmail' na«enliiinurn-.5>objihrt frontier mm 

PdsI "■! .-I- 1- ■: VI in j> i 

CwriBMiny WOW Glo-bat U^dia Pvt Ltd 

Piolike: ri^erience in onria, Mrrrwa^e-. vetilas li de±ired 

Cerliflcatjon 4 mu.s-1 in an> wkuksVfi, linu^, oni> r 

^olatis. IdpapWie ipeakincj if tthiit. 

Eicp: fi-10 

Location: ftanqflSofe 

Email- if wurcLe^^^wgtnoid.EOm 

Pant. Java Swver Oevelopen 
Company. Db[rclwjn Technology India Pvt. I td. 
Piolik: Sti ong and proven experience in developing 
Reiver components--^ desired Should be Strong in 
JJEC server teChikologies' Wefa "Senaicr's. CHbjett 
Model, Coie Jjyu XML, Enteipnie Java TJean^-, JMS 
Muil be good m Java,''J7EE hand* 

Locatieo: Murnluj 

Enuil: "agetidia^obiecivvnn.caHi 

Post - learn Lead 

Company: AfcalH' Lucent Technologiet India Pvt. Ltd. 

ProJiUp' S-hnu'd he Ss^nng in layer ,?/ Lavrr J area* 

iSwitrh. Flndge. IP protocol, Murtica-fting, Routing 

pncitDcuk 1GMR FJP. OS9F, RGP|. Goad workijvg 

eKpeiicnLt! in RTQ5 {Embedded .inux, Unix. Solaii 1 .) 

wntTen code wiEh Kernel APk n alio dknired. 

E^p: 7-B 

Location: Chennai 

Enuil. «jay.lakshma"ia^:|pakatel luLent corn 

Pds-I. Sc, USD EnginaM 
Company. Synop^yi 

Prottff: Must have irgrnificant prio* expfy«nce writing 

pthntadi, C, C-+ * and dnmbuted debugging. Muil 

be abWto design and develop memofy and IP 

eFfici^nl -toiluliqm foi maisihVty data inleniive 

appliralioni. Ilrtnds on ex-reri^nce ;r. I mux 

environment Imell icxipting, pen/tct/p^lhpn) iiahp 


Ek P S-9 

Lbcalion: Bangn:oie 

Email: ak±haEC^ 

Fost Produciion Appfccabon Support Ervgmeet 

Company, hfe^asoli Ltd. 

PiollFe. ShuuU trt 8S m Computet Science w 

equivalent discipline required plus pfoliciency with 

Miciosoft Opevatuig Systems, inefcrdinp NT4.&. 

WINDOWS JOW and Serve* 2003 required, Famikanty 

wilTk L ifiikK IRrni HaE^ and LbiiH Operating Sy.ioni 


Exp: A-B 

Location; Hydwabad 

Email- ralvdih@HUx-bcgi.ccim 

Post IT SeLunty CcmtHilEant 

Company. Vctmoh technology So'iilion* PVI Ltd. 

Prolite: Hemons-ihihtaes. to In-tefact wth software 
providwt in enforcing adequate levels ol suprjoil to 
the in&tated Irkventory, discusses Furicdo-ruJity and 
requwrnenU that beit meet the interest* of tSG. 
Eicp- 4 ib, Location ■ Smidi ArabMi 
Email: iub/ahmanya.varmi@ r v« 

you reach the top 

can help 

hjj) mi in jjujjIulsujjj ;1jj j hs& j^jj tuzi 


India's No, 1 Job Site 

* 2,09,000 Jobs * 35,009 R&cruitfirs- 

* Get Jobi tv email 


How To 



on Linux 


ZFS is a revolutionary filesystem from Solaris with features miles ahead of ext3, 
the most-used filesystem under Linux. However, licence incompatibility makes 
it impossible to merge this open source filesystem to Linux. This article tells us 
how to use ZFS on FUSE, a tool that enables you to run ZFS on Linux — legally. 

"eff Bonwick, the leader of the team 
at Sun Microsystems that developed 
ZFS, called it "...the last word in 
filesystems." It is indeed worthy 
r of the praise considering its advanced yet 
easily maintainable features. ZFS, a pseudo- 
acronym for what was earlier called Zettabyte 
Filesystem, is a 128-bit filesystem, as opposed 
to the presently available 64-bits filesystems 
like ext4 and others. 

Some of its excellent features include: 
■ Simplified administration: ZFS has a 
well-planned hierarchical structure with 
the uberblock (parent of all blocks) and 
disk label at the top, followed by pool- 
wide metadata, the filesystems metadata, 
directories and files. The uberblock 
checksum is used as the digital signature 
for the entire filesystem. Besides property 
inheritance (utilising the hierarchical 
structure), ZFS provides auto management 
of mounting, sharing, compressions, ACLs, 
quotas and reservations, etc, making 
administration easier and more effective. 

The filesystems in ZFS can be compared to 
directories in ordinary filesystems like ext3, 
and most administration tasks are done 
using just two commands— zfs and zpool 
Pooled storage: ZFS has revolutionised 
the filesystem implementation and its 
management with the introduction of 
storage pools. Concepts like datasets (a 
generic term for volumes, filesystems, 
snapshots and clones) and pools (a large 
storage area available for the datasets) 
make filesystem handling easier for the 
administrator. Like the virtual memory 
model for a process, the filesystem can 
grow its usage space as required without 
any pre-determined space limits unless 
provided as quotas' within the pool model. 
'Quotas' can be set, changed or removed 
at will. Also, a minimum reservation 
space for each filesystem can be specified. 
One important aspect of the storage pool 
is the removal of volume management 
architecture, thus reducing a lot of 
complexity for the administrator. 

72 | JUNE 2009 | LINUX FOR YOU | 

How To 


Transactional paradigm: ZFS 

being a transactional filesystem 
is guaranteed to be consistent 
according to its developers. Data 
management in ZFS uses copy on 
write semantics, which ensure that 
data is never overwritten, always 
maintaining an old reference to 
the data. A sequence of filesystem 
operations is either committed 
or ignored as a whole, thereby 
preventing any corruption to the 
filesystem due to power shortage 
or some other outage. This, in 
effect, removes the need for the 
fsck tool, the traditional filesystem 
check and repair tool. 
Scrubbing and self-healing: 
Since data and even metadata is 
checksummed, data scrubbing 
(an operation that checks data 
integrity within a filesystem or, 
in other words, data validation) 
is performed easily within ZFS. 
Checksum algorithms can be any 
user- selected algorithm from SHA- 
256 to fletcher2, producing 256-bit 
long checksums. Besides checking 
for data integrity and preventing 
silent corruption, ZFS also provides 
mechanisms for self healing, mainly 
through RAID-Z and mirroring. 
Two RAID-Z variations, single and 
double-parity, are in fact slight 
variations of RAID-5 and RAID- 
6, respectively. The variations 
mainly aim to eliminate the write 
hole, solidifying data integrity. 
Besides, techniques like resilvering 
or resyncing help in replacing a 
corrupted or faulty device with a 
new one. 

Scalability: The team behind 
ZFS made the decision to go for 
a 128-bit filesystem, even though 
64-bit filesystems like ext4 have 
come up only recently. Its data limit 
is an enormous 256 quadrillion 
zettabytes of storage which, is 
almost an impossible limit to 
reach in the near future since 
fully populating a 128-bit storage 
pool would, literally, require more 
energy than boiling the oceans, as 
Bonwick pointed out. Directories 
can have up to 2 48 (256 trillion) 

entries. No limit exists on the 
number of filesystems or number of 
files that can be contained within a 
■ Snapshots and clones: Snapshot 
is a read-only copy of a filesystem 
or volume at any particular point 
of time. Its design is such that 
space is consumed only when 
data is changed, preventing any 
freeing of data from the filesystem 
unless explicitly asked, giving 
further options for maintaining 
data integrity. Clone is a writable 
filesystem generated from a 
snapshot. The creation of snapshots 
and clones in ZFS is very simple 
and is always pointed out as one of 
its big advantages. 

ZFS and Linux 

ZFS is the standard filesystem for 
Solaris/OpenSolaris OS whose 
source code is published under 
CDDL (Common Development and 
Distribution License). However, 
from the beginning (and hopefully 
forever) the Linux kernel has 
remained licensed under the GPLv2, 
which prevents any other code to be 
linked with the GPLd Linux kernel 
unless that code's licence is GPL v2 
compatible. So the open sourced code 
of ZFS cannot be added/linked to the 
kernel code like any other filesystem, 
either as a part of the kernel or as 
kernel modules. As a workaround, 
some solutions pointed out by the 
open source community are: 

1. A court ruling' (either in the US 
or EU, where ZFS is mainly used) 
stating that GPL and CDDL are 

2. Either of the parties (Linux and 
Solaris) need to change the 
licence of their code to a mutually 
compatible one. 

3. A GPUd ZFS reimplementation 
from scratch, which should be free 
from all the 56 patents that Sun has 
taken on ZFS code. 

4. A method by which we would be 
able to implement ZFS to be usable 
for Linux, which is only possible 
through dynamic linking between 
the codes— this is allowed. 



move to the next level 


There is a 
Great Demand 


NACE Certified 

LAMP Professionals 


with HTML, CS^ 

NCLP 10 



99405 42222 


97909 25554 


9790925550 I LINUX FOR YOU JUNE 2009 I 73 


How To 

The possibility of Options 1 and 2 are remote, compelling 
us to choose between Options 3 or 4. As a solution like that 
suggested in Option 3, a project named BTRFS, guided by 
Chris Mason at Oracle is under development, having been 
merged to a "re" pre-release of the current Linux kernel 
(2.6.30), and is under testing. Definitely, this is going to take 
a long time as ZFS itself was under development for five 
years. Solution 4, which is through a utility called FUSE and 
seems the most stable option as of now, is what I am going 
to discuss as we go on. 


Filesystem in USErspace, or FUSE, helps implement a fully- 
functional filesystem in a userspace program rather than 
directly in the kernel. It is implemented in OSs like Linux, 
FreeBSD, etc. Its components (as of version 2.7.4) consist of a 
FUSE kernel module, a FUSE library containing libfuse and 
libulockmgr, and a special file descriptor like a device file in 
Linux named /dev/Juse, used for communication between the 
kernel module and the userspace library. For user convenience, 
a program named 'fiisermount' is provided along with the 
FUSE package as an easy usermode tool to link up between 
the user-defined filesystem and the FUSE module. 


ZFS on FUSE is a project under development by Ricardo 
Manuel da Silva Correia, a computer engineering student, 
and is sponsored by Google as part of Google Summer of 
Code 2006. So after completion of this project, ZFS will 
have a port on the FUSE framework, which effectively will 
mean operating systems like Linux can use ZFS. A rough 
performance comparison of ZFS on FUSE with NTFS-3G, 
XFS and JFS can be found at 

How it works 

The zfs-fuse daemon acts like a server, managing ZFS on 
the system through the FUSE framework. Every filesystem 
operation on the mounted ZFS devices from any application 
will be through the standard C library system calls. This 
results in calling the kernel's appropriate function from 
the virtual filesystem (VFS) interface, which will then 
be hooked to the FUSE module and, in turn, acts like 
a filesystem module through a special purpose device 
named /dev/Juse. This device acts as a bridge between the 
ZFS implementation andjuse module. Ihejuse module 
communicates with the ZFS filesystem implementation 
(which in this case is zfs-fuse), through the FUSE library 
libfuse which has functions similar to that of VFS s interface. 
The user program returns results for the filesystem request 
in the required format through the FUSE framework to the 

Getting started 

The latest source code of ZFS on FUSE can be downloaded 
from the project site— 

It is available in two forms, as a release version packed as 
a bzip file or directly in source form from the Mercurial 
repository. Installing from the source requires that we use 
scons instead of make, though the command and options are 
almost the same for both. It's better you read the README 
and INSTALL files in the source directory before proceeding. 
Besides, for certain distributions like Gentoo, Debian, 
Fedora, Ubuntu, etc, zfs-fuse is available via the regular 
package management system making the installation much 
easier. Please use your package manager and search for "zfs". 

Installation on Fedora 10 

As I was using Fedora 10 while testing ZFS, my commands 
and configuration files are more specific to Fedora, though 
with minor variations the same should apply to most distros. 
First install the zfs-fuse package using the command [all 
commands from here on should be executed as the root user, 
unless otherwise mentioned]: 

yum install zfs-fuse 

This installed zfs-fuse version 0.5 on my system that has 
Fedora 10. 

Setting up ZFS 

Before executing any commands, it should be verified that 
zfs-fuse daemon is running. 

pgrep zfs-fuse 

If it's not, issue the following code: 

service zfs-fuse start 

...or directly run the script file as follows: 

/etc/init.d/zfs-fuse start 

Managing ZFS 

After making sure that the zfs-fuse daemon is running, 
we need to have a ZFS pool comprising of one or more 
devices. We will create a pool, say 'K7', representing a 
group with many users, each having their own filesystems 
on 'K7'. A user, say ajc, will have his own filesystem, which 
will be mounted under 'K7' with the same user name 
along with the required properties. 

zpool create K7 sdalO 

This will create a pool named 'K7' using the /dev/ 
sdalO device. You can also give the full path as /dev/sdalO 
instead of just sdalO. However, it's not required since zfs- 
fuse will search for any device by default in this directory. 
If the -n option is specified after create, then no pool will 
be created. This will cause just a dry-run, which ends 
up showing the layout of ZFS after the execution of that 

74 | JUNE 2009 | LINUX FOR YOU | 

How To 


command. By issuing the above command, we not only 
created a pool but also implicitly created a dataset (more 
specifically a filesystem) too, which will be mounted by 
default at location '/K7'. It is important to avoid any pool 
name whose name clashes with directories under / [root 
directory]. However, if you want to explicitly specify the 
mount point, say at /mnt/k7 or elsewhere, then execute 
the following: 

zpool create -m /mnt/k7 K7 sdalO 

...or if pool 'K7' already exists: 

zfs set mountpoint=/mnt/k7 K7 

However, after this, K7 won't be mounted anywhere. 
So we need to issue either auto mount on all filesystems 
by issuing the following command: 

zfs mount -a 

...or any specific filesystem as: 

zfs mount K7 

For unmounting we use the unmount option instead 
of mount in the above commands. 

Also, at any point in time, if you want to list all the 
pools in your system, execute the command given below: 

zpool list 

The health status of the pool can be checked with the 

zpool status 

This command can take the optional arguments 
-x and -v for a quick overview and verbose status, 

Since we have created a pool named 'K7' along with 
a filesystem with the same name and mounted it at 
/mnt/k7, to properly harvest the pool we may need more 
filesystems suitably named in the pool 'K7'. This can 
be achieved by using the dataset specific command zfs 
rather than the pool command zpool 

For example: 

zfs create K7/ajc 

...will create a filesystem mounted at a sub-directory ajc in 
a directory where K7 is mounted, which in our case will be / 
mnt/k7/ajc. Similar to specifying mounting options for pools 
as mentioned above, filesystems also have options like: 

zfs create -o mountpoint=/mnt/k7/ajc K7/ajc 

Or if you want to change the mount point of an 
already created filesystem, use: 

zfs set mountpoint=/mnt/k7/ajc K7/ajc 

It is quite possible that after some time the space you 
allocated for the pool may run out. Using the in-built 
compression can be a temporary, yet ready-made solution 
for such a situation. 

zfs set compression=on K7/ajc 

Another way to tackle this is to add devices to the 
pool with the required device space, which will be added 
to the space already available. 

zpool add K7 sdall 

Also, as a counter operation to add, we also have 
remove to remove any added devices from the pool but 
with the restriction that removal can be performed only 
on hot spare (that is, inactive devices made active when 
the system is degraded) devices. 

Like mountpoint and compression, many other 
properties of a filesystem like quota, 'reservation, etc, can 
also be set as: 

zfs set quota=3G K7/ajc 

zfs set reservations G K7/ajc 

Properties of a filesystem can be viewed using get as follows: 

zfs get quota K7/ajc 

And to see all properties, issue the following 

zfs get all K7/ajc 

As mentioned earlier, ZFS gives a lot of importance 
to data validation, which is also called scrubbing, and 
this can be performed on any of the filesystems using the 
command scrub: 

zpool scrub K7 

If at any point you want to see all the commands you 
issued on pools, use: 

zpool history 

Or for a particular pool like K7, issue the following: 

zpool history K7 

Likewise, use iostat to get a count of I/O , LINUX FOR YOU JUNE 2009 | 75 


How To 

operations on pools. 

Now, for creating a snapshot of any filesystem, we 

can issue: 

switch with the above command. 

The following command will display all importable 
pools with their name and ID: 

zfs snapshot K7@snapl 

zpool import 

The snapshot of a nlesystem is represented by its 
name followed by '@' and then the snapshot name. 
Use the -r option to create snapshots recursively on all 
filesystems under the specified filesytem, as in what's 
shown below: 

zfs snapshot -r K7@snap2 

Now, after a lot of changes to the nlesystem, if you 
want to go back to a snapshot of the nlesystem, issue 
the rollback command. The -r switch is required, as we 
have to remove the newer snapshot 'snap2' to roll back 
to 'snapl'. 

...and we can import it using the name (or even the ID), 
issuing the command below: 

zpool import K7 

And finally, the destroy command is used to destroy 
a pool or a nlesystem. The following destroys the ajc' 
filesystem in 'K7': 

zfs destroy K7/ajc 

...while the next command destroys the K7 pool 

zfs rollback -r K7@snap 1 

zpool destroy K7 

Or if the snapshot you are rolling back is the newest of 
all the snapshots of the filesystem, then use the following: 

zfs rollback K7@snap2 

As in the listing of pools, datasets (which include 
fileystems and snapshots) can be displayed using the 
command given below: 

zfs list 

The snapshot created can be easily transferred 
between pools or even between systems using the 
commands send and recv. The following command will 
create a new filesystem 'K7_snap' under 'K7' from the 
snapshot snapl': 

zfs send K7@snap 1 | zfs recv K7/K7_snap 

The following command is the same as the one 
above, but the new filesystem and snapshot will be in a 
remote system 'sreejith': 

zfs send K7@snap 1 | ssh root@sreejith zfs recv K7/K7_snap 

As we know, ZFS is the native filesystem of Solaris 
and if we want to migrate any pool storage in Solaris to 
some other OS like Linux, then we'll have to first export 
the pool from Solaris or whatever OS in which it was 
being used, and then import it to the required OS. 

zpool export K7 

In order to forcefully export 'K7', we can use the -f 

Though ZFS on FUSE manages to implement a lot 
of the features of native ZFS, it is still not complete, 
as has been pointed out in the status of the project. 
Since the implementation is in userspace, which has 
to be linked to the Linux kernel through the FUSE 
module, the performance and scalability is not at 
par with the kernel module implementation of other 
filesystems as of version 0.5. Even then, the project is 
a nice way to get acquainted with the revolutionary 
ZFS in operating systems like Linux. However, it is 
expected that a properly tuned ZFS on FUSE may have 
a comparable performance to the native filesystems 
as in the case of NTFS-3G, a freely and commercially 
available and supported fast handling read/write 
NTFS driver for Linux, FreeBSD, MacOS, etc. 




By: Anoop Joe Cyriac 

He is currently working at K7 Computing, an information 
security solutions company. Hacking in GNU/Linux using C and 
Python is his passion. His areas of interest include virtualisation 
technologies and cloud computing. You can reach him at 
anoopjoecyriac at gmail dot com. 

76 | JUNE 2009 | LINUX FOR YOU | 







ASIA 2009 J 

11213 AUGUST 09 


Supporting Publications 

EM3 BenefTT 


Online Partners SKBags 

Web Promotion Partner 

(% ■ 



SOLUTIONS I I Call: +91-9810116910, +91-9312285U2 


How To 

The Art of Guard 

Last month we barely scratched the surface of the SELinux 
Targeted Policy that's shipped with RHEL 5. This month we'll 
try to delve deeper into it's building blocks. 

f7~^> has been an interesting journey 
\£/ for me ever since we started on 
£ "The Art of the Guard" series. 

\^*S I never imagined the kind of 

response it would elicit and I must thank the 
readers for their responses to the content 
and their queries. One request has been to 
include illustrations in the text since "...a 
picture paints a thousand words." I shall try 
to accommodate as many suggestions as I 
can. Unfortunately this article also does not 
carry any illustrations, but I am positive that 
the subsequent ones will. 

In the previous article we started 
exploring the Red Hat Targeted Policy as 
shipped with Red Hat Enterprise Linux 5. 
In Dan Walsh's words: "The Targeted Policy 
goal is to lock down all processes that listen 
for network connections and pretty much 

all processes that start at boot. Processes 
that are started by a logged in user were 
unconfined {unconfined_t). Services started 
by the init scripts that did not have a policy 
were also run in an unconfined domain 

We also listed the users, roles and types 
that are inbuilt by default in the Red Hat 
Targeted Policy. Now, we shall explore some 
other building blocks of the Targeted Policy. 


Booleans, as we all know, are variables that 
can either be set as true or false. Booleans 
enhance the effect of SELinux policies by 
letting the system administrator fine tune 
a policy. A policy may protect a certain 
daemon or service by applying various 
access control rules. In real world scenarios, 
a system administrator would not like to 
implement all the access controls specified in 
the policy. 

This is where Booleans help. Booleans 
create conditional access controls based on 
their value. As an example, the httpd (Apache 
Web Server) subject has the following 
Booleans in the targeted policy: 

allow_http d_mo d_auth_p am 










http d_builtin_s cr ipting 


allow_http d_nagio s_s cript_anon_write 

78 | JUNE 2009 | LINUX FOR YOU | 

How To 








One of these Booleans is httpd_enable_cgi. As any Web 
administrator knows, CGI scripts can be potential security 
leaks— depending on the manner in which they are written 
and the use for which they are written. We frequently create 
Web servers that let people use CGI scripts to monitor and 
maintain our clients' mail server queues— to delete messages, 
hold messages, etc. A security breach can expose the entire 
mail queue leaving our mail server(s) vulnerable. 

To prevent CGI scripts from running on a server that 
does not require them to be executed, simply disable the 
httpd_enable_cgi Boolean (set the value of this Boolean to 
false). SELinux Access Controls will deny execution of CGI 
scripts and thus secure the server. 

Using the seinfo tool discussed earlier, you can list all 
the available Booleans by issuing the following command:: 

[root@vbg services]# seinfo -b 

All the Booleans inbuilt in the SELinux Targeted Policy 
shall be displayed. 

The list of Booleans in the currently loaded policy can 
also be retrieved by the getsebool command. The -a option 
not only lists all Booleans similar to the seinfo -b command 
discussed earlier, but also the current value of those 

[root@vbg services]# getsebool -a 

NetworkManager_disable_trans --> off 
allow_console_login --> off 
allow_cvs_read_shadow --> off 
allow_daemons_dump_core --> on 

The above output shows various Booleans and their 
values. To get the value of a particular Boolean, it may be 
specified as an argument to the getsebool command. To 
view the current value of the https_enable_cgi Boolean, 
issue the following command: 

[root@vbg services]# getsebool httpd_enable_cgi 
httpd_enable_cgi --> on 

A system administrator on a system not requiring CGI 
script execution would want to set this Boolean to false 
(off). To modify the value of this Boolean we can use either 
the setsebool or the togglesebool commands. 

To disable the httpd_enable_cgi Boolean, issue the 
following command: 

Announcing the 1 st RHCA Exam 

(Red Hat Ceritified Architect) 

in North India 

EX: 436 on 6 th June 09 

Call: 011 30880046 / 47 or 0124 4080880 / 

4268187 for details 

RHCSSs from FOSTERing Linux 

• Varad Gupta 

• Rajveer Singh 

• Deependra Shekhawat 

• Ashutosh Taiwal 

• Vishal Bhatia 

• Praveen Mavi 

• Naresh Paliwal 

• Sanjay Kumar 

• Jyotir Bhandari 

• Akhil Jain 

• GauravSaluja 

• Praveen Thakur 

• Amit Sharma 

• Vishwajeet Sharma 

• Gaurav Ghai 

• The NEXT could be U 

FOSTERing Linux has the MAXIMUM 
RHCSS in India 



System Administrator's Tool Box 

Learn from the EXPERTS: 

RH 429: SELinux Policy Administration 

with Varad Gupta 

Batch Start Date: 13 th June 09 

Call: 011 30880046 / 47 or 0124 4080880 

4268187 for details 


• EX 436: 6 th June • EX 429: 24 th June 09 

• RHCE: 25 th June 09 • EX 423: 7 th July 09 

• EX 333: 22 nd June 09 Ca " for batch details 

Bring this coupon & get 10% discount 
on any available training 



Free & Open Source Training Education & Rt&aarcJi 

SCO M-22, Second Floor, 

Old DLF Colony, Sector- 14, 

Gurgaon - 122 001 


Tel : +91-124-4268187, 


55, Deepak Building 13, 
Nehru Place, 
Tel : +91-30880047/49 
Email ID: 




How To 

[root@vbg services]# setsebool httpd_enable_cgi off 

You can check the new value of the Boolean by again 
using the getsebool command described above: 

[root@vbg services]# getsebool httpd_enable_cgi 
httpd_enable_cgi --> off 

The above change will affect the Boolean value in the 
currently loaded policy but will not remain after reboot. To 
make Boolean values persistent across reboots, use the -P 
option with the setsebool command: 

[root@vbg services]# setsebool -P httpd_enable_cgi off 

This will ensure that value of the httpd_enable_cgi 
Boolean has been set to off and will not change even after 

portcon tcp 80 system_u:object_r:http_port_t:sO 
portcon tcp 443 system_u:object_r:http_port_t:sO 
portcon tcp 488 system_u:object_r:http_port_t:sO 
portcon tcp 8008 system_u:object_r:http_port_t:sO 
portcon tcp 8009 system_u:object_r:http_port_t:sO 
portcon tcp 8443 system_u:object_r:http_port_t:sO 

As you can see, the first line of the output above labels 
the network Port 80 for TCP protocol with the security 


For the GUI initiated, policy details such as Booleans 
and Port Contexts can be viewed/modified by the system- 
config-selinux command: 

[root@vbg services]# system-config-selinux 

[root@vbg services]# togglesebool httpd_enable_cgi 
httpd_enable_cgi: active 

[root@vbg services]# getsebool httpd_enable_cgi 
httpd_enable_cgi --> on 

A note of caution though— togglesebool only changes 
the "in memory" value of a Boolean. Changes made using 
the togglesebool command are not persistent across 

As an exercise, I leave it to you to discover the Boolean 
that disables SELinux policy rules from applying to a 
particular service or daemon. In case of doubt, you can 
mail me for the answer. 

Booleans also help to understand the various protected 
daemons under the SELinux Targeted Policy. 


PortCon or Port Security Contexts are similar to File 
Security Contexts, but are applied to Network Sockets 
or ports. In a SELinux policy, access to various ports by 
subjects is critical. Portcon or Port Security Context 
Labels are based on protocol and port number(s)/range. 

As an example, under the SELinux Targeted Policy, 
the httpd subject can only listen on standard ports. If 
the system administrators change the default ports 
from 80(http) or 443(https), they will need to add a new 
portcon in the SELinux policy to allow httpd to bind to 
this port. 

To view the defined Port Security Contexts in the 
loaded SELinux policy, issue the following command: 

[root@vbg ~]# seinfo -p 

As you can see, the Port Context information contains 
the protocol, port and the security context. As an example, 
the http_port security contexts defined in the Red Hat 
Targeted policy are: 

Do execute this command under the X environment 
to view and comprehend the building blocks of a SELinux 
Security Policy. 


Node Security contexts are labelled by the nodecon 
statements in an SELinux policy. They can be used to apply 
access control restrictions from various hosts/nodes in the 
network. An effective security policy for network access to 
services can be created by creatively applying node context 
access restrictions. 

To list the default node contexts in the loaded SELinux 
policy, issue the following command: 

[root@vbg ~]# seinfo -o 

The output specifies security contexts assigned to 
various hosts: 

nodecon system_u:object_r:inaddr_any_node_t:sO 
nodecon system_u:object_r:lo_node_t:sO 
nodecon :: ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff system_u:object_r:unspec_node_t:sO 
nodecon :: ffff:ffff:ffff:ffff:ffff:ffff:: system_u:ob]ect_r:compat_ipv4_node_t:s0 
nodecon ::ffff:0000:0000 ffff:ffff:ffff:ffff:ffff:ffff:: system_u:object_r:mapped_ 
nodecon fe80:: ffff:ffff:ffff:ffff:: system_u:object_r:link_local_node_t:sO 
nodecon fecO:: ffcO:: system_u:ob]ect_r:site_local_node_t:sO 
nodecon ff00:: ff00:: system_u:ob]ect_r:multicast_node_t:sO 


Classes, or more specifically 'Object Classes', are the 
resources on which SELinux Access Restrictions are 
applied. Examples of Object Classes include file, dir and 
network sockets. An instance of an Object Class is called 
an Object. 

To see the various Object Classes in the default loaded 
SELinux Policy, issue the following command: 


How To 


[root@vbg ~]# seinfo -c 

A file on your system, a network 
socket or a process— all of these are 
instances of Object Classes. A list 
of file related Object Classes in the 
default-loaded policy in my system is 
shown below: 

blkjile -Block File 
chrjile - Character File 
lnk_file - Symbolic Links 
fifo_file - Named Pipes 
file - Normal Files 
sock_file - UNIX domain sockets 
filesystem - Partitions etc 
dir - Directories 
fd - File Descriptors 


Permissions on Object Classes 
constitute the access control 
restrictions defined in a SELinux 
security policy As you can guess, 
permissions relate to read/write 
and other fine grained controls. To 
list various permissions that can be 
applied to each of the Object Classes 
in the default loaded policy, issue the 
following command: 

[root@vbg ~]# seinfo -c -x 

As an example, the permissions 
that can be applied to an instance of 
the "file" object in the Targeted Policy 
loaded on my system, are: 



















The above example means that 
processes (subjects) can be given 
permissions to append, create, 
execute, write, etc. Depending on the 
permissions specified to a particular 
subject, a successful access or denial 
will occur. 

For example, you can specify that 
the httpd process can create a file in 
the /tmp folder, append to a file in the 
/var/log/ folder and only read from 
the /var /www/html folder. 

If a newly installed Web 
application tries to create a file in the 
/var /www /html folder (assuming it is 
owned by the apache' user and has all 
the required DAC permissions using 
chmodl chowri) it will still get a denial. 

The above example clarifies 
how MAC restrictions prevent 
unauthorised tampering of data and 
secure your critical servers. 


Attributes group together types with 
similar properties. They make it 
easier to specify rules in a policy. For 
example, most applications (http, 
ftp, squid, mail) create log files. If 
the system administrator had to 
create individual rules for logrotate, 
appending and creating log files, it 
would involve a lot of repetitive work. 
Once a type attribute is specified 
to a new object, permissions 
associated with that attribute are 
applied to the new object, saving a 
lot of repetitive work. To view a list 
of all attributes in the current loaded 
policy, issue the following command: 

[root@vbg ~]# seinfo -a -x 

You can see that log files are 
grouped together under the attribute 










We will deal with categories, 
sensitivities, fs_use and genfscon in 
detail in subsequent articles in this 
series. In this article we have looked 
at more building blocks of SELinux 
security policies. The various basic 
building blocks of a SELinux Security 
Policy can be summarised as: 

■ Users 

■ Roles 

■ Types 

■ Booleans 

■ Classes (Object Classes) 

■ Permissions (on Object Classes) 

■ Attributes 

■ Port Contexts 

■ Node Contexts 

Access Control rules can be 
applied as per permissions assigned 
to classes. These rules can be 
ummarised as: 

■ Allow rules— to allow access 

■ NeverAllow rules— to prohibit 

There are other rules as well— Type 
Transitions, AuditAllow, DontAudit, 
etc. In the next article we will explore 
how these rules are applied for access 
permissions to objects based on their 
Security Contexts. 

Still to come 

■ Understanding the Targeted 
Policy - Part III 

■ Policy Modules 

■ MLSandMCS EHf\ 

By: Varad Gupta 

Varad is an open source enthusiast 
who strongly believes in the 
open source collaborative model 
not only for technology but also for 
business. India's first RHCSS (Red Hat 
Certified Security Specialist), he has 
been involved in spreading open source 
through Keen & Able Computers 
Pvt Ltd, an open source systems 
integration company, and FOSTERing 
Linux, a FOSS training, education and 
research training centre. The author 
can be contacted at varad. gupta@ I LINUX FOR YOU I JUNE 2009 I 81 

^Tips Tricks 

Encryption with VIM 

<£ Editors note: Last month we showcased a tip on 
how to encrypt a file using Vim. One of our readers had, in 
fact, sent a more detailed tip around the same time, which 
we have published this month. 

Create an encrypted file called abc.txt 

[prabhat@localhost ~]$ vim -x abc.txt 

This will prompt you to enter an encryption key 
(password) before creating the new abc.txt file. 

Enter encryption key:*** 
Enter same key again:*** 

After entering the passphrase twice, the abc.txt file 
will finally be opened for entering data. Key in a few 
characters/words/sentences, then save and close the 

Now try to read the file as you would with a typical 
command like cat: 

[prabhat@localhost ~]$ cat abc.txt 



Eg[prabhat@localhost ~]$ 

Did you notice that although you're the owner of 
the file, you yourself can't even read it without using the 

Go ahead and check the ownership and file 
permissions yourself, as follows: 

[prabhat@localhost ~]$ Is -1 abc.txt 

-rw-rw-r- 1 prabhat prabhat 33 Apr 12 00:07 abc.txt 

Here's how you can check if this file has been 
corrupted or encrypted: 

[prabhat@localhost ~]$ file abc.txt 
abc.txt: Vim encrypted file data 

It means it's not corrupt, but encrypted. Now to 
open the file, issue the following command: 

[prabhat@localhost ~]$ vim abc.txt 

You will be asked to enter the password for this file, 
that's it. 

Now, how about changing this password? Let's say 
that earlier it was 123 and now we want to change it to 
777. Here we go: 

[prabhat@localhost ~]$ vim +X abc.txt 
Enter encryption key: *** 
"abc.txt" [crypted] 1L, 21C 
Enter encryption key: *** 
Enter same key again: *** 

It's mandatory to save and quit, otherwise your new 
password will not be saved. So now your new password, 
777, is set. Next time make sure you entered this new 
password while opening abc.txt. 

Finally, how can we remove the password or 
encryption from file? Simple... Run the following 

[prabhat@localhost ~]$ vim +X abc.txt 

Open a file with your password and it will ask you to 
enter new encryption. Don't enter anything, but just hit 
the Enter key twice, followed by a Save and Quit. That's 
it! Now you can open your file without a password. 

— Prabhat Rishi, prabhatrishi@rediffmail. com 

Seven ways to log out of Bash 

<£ How many ways do you know of to log out from a 
Bash shell? Here are at least seven commands that you 
may use to log out— but please be aware that some of 
the commands are dangerous if you're logged in as the 
root user because they could stop services/daemons 
that usually run as the root. 

82 | JUNE 2009 | LINUX FOR YOU | 

1. logout 

2. exit 

3. CTRL+D 

4. export TMOUT=l 

5. fuser -k y pwd y (Don't do this as the root) 

6. skill -KILL -u ' whoami y (Don't do this as the root) 

7. kill -9 $$ (Don't do this as the root) 

Note: TMOUT turns on the auto-logout feature 
and if there is inactivity for N seconds, the user is 
logged out from the shell. 

there's always more information there. 

— Vijendra Maurya, vijendra.maurya@ips. 

Count the number of lines; and fold a file 
^ to a defined width 

If we want to count the number of lines in a text file (say 
file.txt) then use the following command: 

cat -n file.txt 

— Bharat Mumbaikar, bmumbaik@redhat. com 

Kill all process instances at one go 

<> Sometimes you might need to urgently kill all the 
Java processes. Use the following command to do so: 

ps -ef | grep Java | xargs kill -9 'awk '{print $2 }" > /dev/null 2>&1 


wc -1 file.txt 

fold is a very handy utility to wrap any size of file to 
a predefined width. For example, if we have a file named 
jash.txt, then we can use the command below: 

This can be used for any application you want to kill. 
All you need to do is replace "Java" with the name of the 

For example, if you want to kill all instances of 
Firefox in a single command, then issue the following 

ps -ef | grep firefox | xargs kill -9 "awk '{print $2 }' x > /dev/null 2>&1 

fold -sw 60 jash.txt > output.txt 

This will create an output file named output.txt with 
a predefined width of 60. Here -s breaks spaces and 
-w defines the width of the column, which is 60 in our 

—Jasvendarsingh M. Chokdayat, theindianjash@ 

— Senthil Kumar, hellomrsenthil@gmail. com 

Download a website 

yy Here is a simple and effective way to get the files 
downloaded recursively from a website without actually 
visiting each and every link to the sub pages. This is 
also useful in case the pages are of type XHTML or text 
type— one can make them .htmlby use of an appropriate 
switch like -E. Go to the directory onto which you wish 
to download all the content from site, and use the 
following command: 

wget -r -p -k -E 


• -r is for recursive download of pages 

• -p is for linking pages locally so that users 
can browse them easily once the download is 

• -k is to create the directory structure, and... 

• -E is to create .html extensions to the type 
XHTML or text files. 

Enjoy, and try out different contents on the Net. Do 
not forget to check out the manual pages for wget— 

Text-based Web browsing 

< : ; You may use elinks or links in text mode to 
browse websites from a console, elinks can not only be 
controlled by a keyboard but also by the mouse to an 
extent, and is an advanced version of links. Here's how to 
get started: 


This will open in your browser. Press the 
Esc key to access the menu where, among other items, 
you will find File^Exit to close the browser. 

— Yogesh Vaishnav,friendyogi@gmail. com 

Share Your Linux Recipes! 

The joy of using Linux is in finding ways to get around 
problems— take them head on, defeat them! We invite you 
to share your tips and tricks with us for publication in LFY 
so that they can reach a wider audience. Your tips could be 
related to administration, programming, troubleshooting or 
general tweaking. Submit them at . The 
sender of each published tip will get an LFY T-shirt. | LINUX FOR YOU | JUNE 2009 | 83 

Developers How To 

iPhone Development 

on Linux 

Learn how to set up the Open Tool Chain for iPhone on Linux. 

f~S~ know you're wondering how can 

\^y this author talk so positively about 
the iPhone, after his article titled 
C_^^ The True Open Phone Platform, 

published in the January 2008 issue of LINUX 

The iPhoneDevTeam 

According to Wikipedia: "The iPhone Dev Team is a group of influential 
hackers among the iPhone OS community responsible for a number 
of widely-used jail-breaking and unlocking applications for Apple's iPhone 
and iPod Touch devices. These applications provide owners with the ability 
to sidestep the limitations placed on devices by the manufacturer, allowing 
for activities such as deep customisation and SIM unlocking. The team is 
notable for discouraging the practice of warez (refers primarily to copyrighted 
works traded in violation of copyright law) and its team members take great 
care to ensure all releases are free from Apple's copyrighted code, to a 
point where members violating this are dismissed from the team." For more 
information visit 

For You, which focused on the OpenMoko 
platform. But things have changed since 
then. And guess what, I love my iPhone. I love 
OpenMoko very much too, but both are in 
different leagues. 

ONote: iPhone 2G, iPhone 3G and 
iPod Touch share the same OS with 
variations like: iPod Touch does not come 
with GPS, Phone and Bluetooth; and 
iPhone 2G does not have 3G, A2DP capable 
Bluetooth and GPS. However, all these 
devices share a larger set of common 
elements that will make your application 
run on all the platforms. The primary 
benefit of using iPod Touch over iPhone is 
the price. You will get an iPod Touch 8GB 
in India for Rs 14,000, whereas iPhone 3G 
8GB will cost you a whopping Rs 31,000 


How To Developers 

(quoting Airtel's price). In this article I will mainly talk 
about iPhone 3G, but it can be applied to other devices 
as well, with a few exceptions. 

The iPhone 

iPhone is, in a way, probably the world's best smartphone 
till date. Earlier, it used to be locked and developers were 
only allowed to build Safari Web applications. (Safari is 
Apple's Web browser based on Apple's Webkit, which is 
based on KDE's KHTML engine.) Argg!! Because of this 
horrible limitation I was not looking at iPhone as a serious 
opportunity for developers. But Apple has changed for the 
better. Not only has it opened the iPhone APIs, but has also 
constantly improved the SDK with thousands of new APIs 
accompanying each release. 

For developers, this is a dream come true. With iPhone 
OS 3.0 slated for release in mid- 2009, there should soon be 
a 1,000 new APIs for iPhone, which will enable developers 
to do cool things: 

■ In App Purchase-. Enable you to purchase additional 
content from within the applications. A good example 
would be games, where someone can purchase an 
extra level from within the game. This means an extra 
revenue source for developers. 

■ Apple Push Notification Service-. A way by which an 
application can trigger events, and send messages and 
alerts even when the application is not running. A 
good example would be an IM client in which you can 
log in and close the application, and still receive IM 

■ External Accessory Framework: Hardware developers 
can use this API to give their device a great face and 
powerful ARM CPU. Devices can communicate over 
iPhone's 30-pin dock connector and wirelessly over 
Bluetooth. An excellent example was shown by a 
medical company at the iPhone OS 3.0 pre-release 
announcement event. The company had connected 
its blood sugar checking device to iPhone to create a 
full blown life-saving application for diabetic patients, 
which offered suggestions on what to eat, how much to 
exercise and what medicines to take. Useful, isn't it? 

■ P2P Device Connectivity: A great set of APIs that allows 
multiple iPhone devices to interact with each other 
over Bluetooth, without pairing. Again, at the iPhone 
OS 3.0 pre-release event, the developer of the music 
app, Smule, connected multiple devices running Smule 
to produce orchestra-like music. 

■ Maps (and location APIs): Developers can build 
applications that will interact with users based in 
their locality. They can integrate Google Maps within 
their applications. Imagine a food application telling 
you the address for your favourite cuisine that's 
available close by. 

These are just a few of the new APIs that will be 
available in iPhone OS 3.0— many others are already 
available in the current version of iPhone OS/SDK. 



r ™ 



Optional VFP 




ARM 11™ core 






Memory Management 

AMBA AXI Interface 


U U 







J|_J U JU U | 


Figure 1: The ARM 1176JZF architecture 

iPhone hardware 

That's not just all; iPhone is powered by insanely powerful 
hardware. Let's look at the specs: 

■ CPU: 620 MHz ARM 1176, under-clocked to 412 MHz 

■ GPU: PowerVR MBX Lite 3D 

■ Storage capacity: Flash memory (Original: 4, 8, & 16 
GB; 3G: 8 & 16 GB) 

■ Memory: 128 MB DRAM 

■ Display: 480x320 px, 3.5 inch (89 mm) colour LCD 
with an aspect ratio of 3:2, capable of up to 2,62,144 

■ Input: Dock connector, headphone jack, Wi-Fi 
(802.11b/g), Bluetooth 2.0+EDR 

■ Camera: 2.0 mega-pixels 

■ Connectivity: Quad-band GSM 850 900 1800 1900 

■ 3G also includes: Tri-band UMTS/HSDPA 850, 1900, 

■ Accelerometer: Detects the movement in hardware 
and reacts accordingly. 

Let's talk about the CPU to begin with. Yes, it is 
ARM— don't you guys get sick of seeing it all the time? 
This is the second time I am talking about ARM in LFY; 
the first instance was for the Nokia 6630 (Outsmart Your 
Smart Phone, published way back in June 2006). In short, 
ARM is the CPU for all next-generation devices these 
days, including Nintendo DSi (the game console), Nokia 
smartphones (6630,N73, N95), iPods, and so on. 

The one included in iPhone is even better: 

■ The ARM1 176JZF chip with TrustZone (enables a 
trusted computing environment for media, apps, 
network, OS, etc). Yes, not a lot of people like the 
trusted-environment bit— and the reasoning is quite , LINUX FOR YOU JUNE 2009 | 85 

Developers How To 

Figure 2: The iPhone Ul elements 

fair. Refer to Figure 1 to understand its architecture. 

■ Can vary in clock speed up to 700MHz or more, 
depending on implementation. 

■ ARM Intelligent Energy Manager (which is supposed 
to reduce power consumption by 25-50 per cent in 
portable devices). 

■ 16K/16K cache 

■ Features a vector floating point coprocessor ( for 
embedded 3D-graphics) 

■ ARM Jazelle enabled for embedded Java execution 

■ SIMD, high performance integer CPU (8-stage 
pipeline, 675 Dhrystone, 2.1 MIPS) 

■ 0.45 mW/MHz power draw (with cache) 

After reading the sixth point, you might think that 
iPhone 3G supports Java, but that is not the case. But we 
do have a way by which we can install Java on iPhone. 

iPhone supports the OpenGL ES specification. It is 
arguably the best 3D API available for mobile devices, and 
existing ES applications can be ported very easily. 

iPhone Ul elements (visual look) 

I know it is absurd to suddenly talk about the Ul 
elements, but I am so impressed by the iPhone's look 
and feel that I thought it would be a good idea to 
impress you as well. 

The deal is, the iPhone default interface is awesome 
(well, looks do sell!) and the SDK enables every developer 
to create an application with the same look and feel. So, 
third-party applications will essentially look integrated 
into the iPhone OS. You may very well give users the feel 
of a factory-bundled application when you develop your 
own app. 

Hope the collage in Figure 2 gives you an idea of what 
I am talking about. 

The OS 

Now, tell me what could possibly be the best thing that could 
happen to an iPhone? iPhone running Linux as an operating 
system, right? Not quite... But it's running UNIX at least. Or 
actually running an open source kernel called XNU 

iPhone OS is essentially the stripped down version of the 
Mac OS X in almost every aspect. That means the iPhone OS: 

■ Runs a kernel called XNU (X is not UNIX), which is a 
hybrid kernel based on MACH (operating system micro- 
kernel developed at Carnegie Mellon University) and BSD. 

■ Is compatible with the Single UNIX Specification version 
3 (SUSv3) and POSIX UNIX applications and utilities, 
including Bash, cat, etc. 

■ Supports kernel cache, a flat file with all drivers loaded. 

■ The Ul abstraction layer (responsible for awesome Ul 
elements) is powered by Cocoa Touch, which is based on 
the Mac OS X desktop version of Cocoa API. 

There is much more to the MAC OS X operating system 
when we look at it from a UNIX point of view. I would like to 
cover it in detail, if Linux fans have no problems looking into 
other UNIX variants. 

iPhone development: The Apple way 

It's time to get started, but first the bad news. Apple does 
not provide an SDK for Linux. The iPhone SDK is only 
available for Mac OS X. However, the good news is that there 
is an Open Toolset that we can use on Linux, to develop for 

Historically, iPhone has been a closed device and still is. 
The Apple way to develop for iPhone looks like this: 

1. Join the iPhone Developer Program at 
com/iphone/program with a membership fee of $99. 

2. Download the iPhone SDK from 
iphone/ program/ download. The SDK is entirely free 
(of cost). But deploying on the real iPhone requires 
paid membership. 

The iPhone SDK essentially includes a world class 
IDE called Xcode. It is a suite of tools for developing 
software on Mac OS X, created by Apple. The Xcode 
suite includes a modified version of free software GNU 
Compiler Collection (GCC, apple-darwin9-gcc-4.0.1 as 
well as apple-darwin9-gcc-4.2.1, with the former being 
the default), and supports C, C++, Fortran, Objective- 
C, Objective-C++, Java, AppleScript, Python and Ruby 
source code with a variety of programming models, 
including Cocoa, Carbon, and Java. 

Third parties have added support for GNU Pascal, 
Free Pascal, Ada, C#, Perl, Haskell and D. The Xcode suite 
uses GDB as the back-end for its debugger. Xcode can 
be used to compile and debug applications for the ARM 
processor used in iPhone and iPod Touch. 

If you ask me, Xcode is probably the best IDE 
available that uses GCC and GDB as the backends. In 
other words, it's way better than Visual Studio and it uses 
the GNU toolset. Xcode is available free from developer. 


How To Developers 

3. Sign your application with the developer certificate that 
you got from enrolling in the iPhone Developer program. 
Deploy and test it on your device. 

4. Submit your application to App Store for Apple s 
approval. App Store is a service for the iPhone and iPod 
Touch created by Apple that allows users to browse 
and download applications from the iTunes Store that 
was developed with the iPhone SDK and published 
through Apple. The apps are available for purchase or 
free of charge, depending on the application. App Store is 
available from both iTunes and iPhone. 

5. If approved, you can see your application in the App 
Store. If you are selling a paid application, Apple will keep 
30 per cent of sales revenue and give you 70 per cent. 
Figure 3 showcases the Indian App Store that you can 
access from iPhone. 

That is the best way to go, if you have the money 
and have development on your mind. But that involves 
purchasing Mac hardware. As they say, if you spend 
money, you get money. 

iPhone development: The open way 

Even with all these cool features, let's understand this: the 
factory-shipped iPhone is a closed device, like any other 
consumer computing device. If we talk about closedness', 
iPhone generally falls under the game console category along 
with Xbox 360, PlayStation 3, Sony PSP and Nintendo WII. All 
these devices are very powerful computing devices. But the 
systems developers want to restrict the applications that are 
run on them. This gives them more control over the software 
and hence helps them to channelise the revenue generated. 
Most of the time, this is implemented with code signatures, 
where the signing key is only available to the hardware 
makers. Whatever applications run on these platforms have 
to be signed by the systems makers, and only then will they 
run on those systems. The reason is quite obvious. 

Now, allow me to clarify; code signing in itself is not a 
bad thing. Code signing helps users to verify the source of 
the application and hence keep them safe from malicious 
code. In Linux, RPM repositories use GPG-based signatures 
to verify the integrity of RPM source. Windows uses device 
driver signatures to ensure the stability of a driver. The only 
difference is that even if something is not signed, it will run 
on Linux and Windows systems, whereas on consumer 
devices like the iPhone, it will simply not run. 

iPhone lives in a 'jail', literally! In the UNIX world we 
called it the chroot jail. All iPhone interfacing applications, 
such as iTunes, run in a chroot environment where no 
application can peek into the operating system. Also, the 
applications that run on iPhone must be signed by Apple in 
order to run. 

Before we proceed, let's try to understand chroot jails. 
chrooting is a verb that evolved from the chroot (2) system 
call, which is used to change the root of the file system as 
seen by the calling process. When a process requests to 
chroot to a given directory, any future system calls issued by 

Figure 3: Indian App Store on iPhone 

the process will see that 
directory as the file system 
root. It becomes impossible 
to access files and binaries 
outside the tree rooted on 
the new root directory. This 
environment is known as a 

A jail is a directory in 
your system, and the user 
cannot see/do anything 
outside that directory. In 
other words, the user is 
jailed in the directory. The 
chroot (2) system call is 
used to put the user inside 
this jail. If you want the user 

to be able to do one thing, that one thing should be possible 
inside the jail. For example, if you want the user to be able to 
run SCP, you need to have a copy of SCP installed in the jail, 
in addition to the means to execute it (a shell). 

In order to run your own application on iPhone (without 
Apple's signature), you must free your iPhone from this 'jail', 
commonly referred to as jail-breaking your iPhone. 

■ Warning: I am not a lawyer. Before jail-breaking your 
iPhone, please check whether this renders your warranty as 
null and void. A Google search might help. 

You will need a Windows or Mac system to jail break 
your device. It is a very easy process. Please visit iPhone dev 
team's blog at 
stable-door to understand the process. Download a tool 
called QuickPwn, a very self-explanatory tool that will help 
you render your iPhone as jail broken within minutes. 

Setting up your iPhone for development 

Jail-breaking your iPhone will give you a lot of UNIX 
utilities installed on the iPhone, including BSD user land 
applications. Jail-breaking also installs a Debian-based 
GUI package management tool called Cydia (refer to the 
sidebox title 'Cydia Package Manager' for more information 
on this utility). Open Cydia and search for software called 

Cydia package manager 

Quoting Wikipedia: "Cydia is a Debian Apt-based 
package installer/manager for the iPhone and iPod 
Touch, created and maintained by Jay Freeman (saurik), 
which allows users to browse and download applications 
from a range of sources. Most applications are available 
to download for free, with some requiring purchase after 
downloading, and as of the 1 .0.2790-44 release, applications 
are available to purchase from within the application." For 
more details visit en. LINUX FOR YOU I JUNE 2009 I 87 

Developers How To 

Reloading Data 

Figure 4: Installing OpenSSH using Cydia 

OpenSSH (Figure 4). This will help in connecting to iPhone 
over Wi-Fi and to run UNIX commands. If you want, you 
can also install an application called Terminal, which will 
give you a shell environment on your iPhone. The default 
shell for iPhone is Bash. 

Also note down the IP address of your iPhone. Connect 
your iPhone to the Wi-Fi network. Go to Settings^Wifi-^ 
WifiAcess Point Name, and note down the IP address. 

Building the free tool chain 

In this section, we will build the tool chain for iPhone, which 
includes the compiler, linker, etc. I am using OpenSUSE 11.1, 
but this should work on any Linux distro. 

Make sure you install the following software on your 
Linux distribution before proceeding: 

1. Basic development tools including GCC, Make, 
Autotools, Flex, Bison, autoconf, automake, etc. 

2. Objective C Support for GCC is very important. Search 
for Object C or Objective C in your package manager 

3. GitandSVN 

4. cpio 

5. Iibxml2-dev, needed to build xar 

6. xar ( p/ xar) and dmg2img [available 
on LFYDVD/software/magazine/iPhone). Build and 
install xar: 

$ tar xvfz xar* 

$ cd xar* 

$ ./configure -prefix=/usr && make 

$ sudo make Install 

Build and install dmg2img: 

$ tar xvfz dmg2img* 


$ sudo cp dmg2img /usr/bin/dmg2img 

What's this 'Objective-C thing? 

The Wikipedia says: "Objective-C is a reflective, object- 
oriented programming language, which adds Smalltalk- 
style messaging to C. Today it is used primarily on Apple's 
Mac OS X and iPhone OS, two environments based on the 
OpenStep standard, and it is the primary language used for 
Apple's Cocoa API, though it was originally used as the main 
language on NeXT's NeXTSTEP OS. Generic Objective-C 
programs, which do not make use of these libraries, can 
also be compiled for any system supported by gcc, which 
includes an Objective-C compiler." For more information refer 
to en. wikipedia. org/wiki/Objective-C. 

This essentially means that if you want to program for MAC 
OS X and iPhone, you have to do it in Objective C. Fortunately, 
all Linux distributions support Objective C. 

# modprobe hfsplus 

# mount -t hfsplus -o loop iphonesdk.img /tmp/iphonesdk 

• Copy the MacOSXIOAUniversal.pkg 

# mkdir /tmp/extract 

# cp Packages/MacOSXIOAUniversal.pkg /tmp/extract 

• Extract the pkg file using xar 

# cd /tmp/extract 

# xar -x -v -f *.pkg 

• You will have a big file called Payload. Extract the 
payload file 

# mv Payload Payload.gz 

# gunzip Payload.gz 

# cat Payload | cpio -i 

• Finally copy the folder MacOSX10.4u.sdk 

# cd SDK 

# mkdir /isdk 

# cp -r MacOSX10.4u.sdk /isdk/ 

Copy the iPhone file system 

We will need to copy the iPhone file system that will help us 
in getting iPhone libraries and frameworks. 

■ Warning: I am not a lawyer. Check Apples Terms and 
Conditions yourselves to make sure that you are not breaking 
any laws. 

MacOSX10.4u.sdk— This one is little tricky. Here is how to 
get it: 

• Download "Xcode for iPhone and Mac Development" 
from com/ technology /Xcode.html. 
Convert the dmg file to a flat img file 

$ dmg2img -i iphonesdk.dmg -o iphonesdk.img -v 

• Mount the img file to /tmp/iphonesdk. Make sure you 
are logged in as the root. Or use the sudo command. 

Do the following: 

# mkdir -p /toolchain/sys/ 

# cd /toolchain/sys/ 

# mkdir -p ./System/Library ./usr 

# scp -r root@<iPhone IP Address>:/Sy stem/Library /Frameworks/ ./System/ 

# scp -r root@<iPhone IP Address>:/:/System/Library/PrivateFrameworks/ 

# scp -r root@<iPhone IP Address>:/:/usr/lib ./usr 


How To Developers 

Set up the environment variable 

You can either set up these variables in your .bahsrc 
files or give a series of export commands while building 
the tool chain. 

# export target=arm-apple-darwin9 //Sets the target build environment 

# export prefix=/toolchain/pre //Sets the default prefix path 

# export sysroot=/toolchain/sys 

# export PATH="${prefix}/bin":$PATH 

# export cctools=/toolchain/src/cctools 

# export gcc=/toolchain/src/gcc 

# export csu=/toolchain/src/csu 

# export build=/toolchain/bld //Sets the build directory 

Once environment variables are set do the following: 

1. Install Csu, which provides C hooks into assembly's 
"start" entry point, and sets up the stack so that your 
programs main ( ) function can be called. 

# mkdir -p ${csu} 

# cd "${csu}" 

# svn co . 

# cp -R *.o "${sysroot}"/usr/lib 

# cd "$ {sysroot}"/usr/lib 

# chmod 644 *.o 
#cp-Rf crtl.ocrtl.l0.5.o 

# cp -Rf dylibl.o dylibl.l0.5.o 

2. Build the GNU Tool Chain: This includes building a cross- 
compiling tool chain such as an assembler, linker and so 

# rm -rf "${cctools}" 

# svn co 
ld "${cctools}" 

# mkdir -p "${build}" 

# cd "${build}" 

# mkdir cctools-iphone 

# cd cctools-iphone 

# CFLAGS=-m32 LDFLAGS=-m32 "${cctools}7configure -target="${target}" 


# make install 

3. Installing the iPhoneOS Header Files: This is where we 
use our hard-earned MacOSX10.4u.sdk. 

# cd "${build}" 

# svn co 
sdk include 

# cd include 

# ./configure -prefix="${sysroot}7usr -with-macosx-sdk=/isdk/ 

# bash 

4. Building LLVM Compiler (According to Wikipedia: "The 
Low Level Virtual Machine, generally known as LLVM, 
is a compiler infrastructure, written in C++, which is 
designed for compile-time, link-time, run-time, and 
"idle-time" optimisation of programs written in arbitrary 
programming languages. For details refer to en.wikipedia. 

# rm -rf "${gcc}" 

kiinilfhnui vo^n • 
* rn- applLe- tf aw h t ni 

b,linp I # I !nui-yb?n ■ 
huttiLf L I ntJi jrb'Jn i 

Bra apple tffl«H'n ! > 
am-ippl r- An r n - n§- 

lift Afple- dUiy'Cl'J 
JTB ■ app 1 f > rfl 1 h : n't 

dr*> ^pp . c dnrn <n't 
j i - jpp ' f -BBfWKH- 
■ra *pp - for* ■ ■ 
ara-appl # • rf n h i n9 
lara - j-jip Lc - tfartfi n'l 
afB-appI t-far u i n 1 *- 
ii I e Alt y i n'J 
iri jpp If il.T h <>i't 

■t\ - Jpp :1 *1TH in'J 


■ tiitf Lf I Irtijfl ynQjll J 

l L»d I rhj i n ' p r f 
Blfl iu-.l-.U-. 

HVDtchMiM pi-' 
ik.0bkE.IFia IH. J pf r.' 

td b 

1b Ikbejcec mri ihjrs 

CDdlP-Vifll iklara 

t u 


|CC*.JI. 1 


install ajBi la 


I < blag I 


jra jppkr daivinH | ipn 
ura ypplc daiainS nil 

^r«-j[:p|r-fla|-iHltl9-r~^il i 
uir J||: li All m iti'J u^u 
i rai-> ipp I i - dim Hl9 ■ fl I dD I tifl 

■ rai ipp I c - d aw h i*i3 p ■ft«9 k j I r 

*' ■- Hp|l1*-44l mnl ■■ an' Hi 

•JTB JpNlc- ddi yiH 1 ] !4-rfb_bfhbirkd IH4 

ira^ipplr airbiii? 4-rg. j-riJr kabki 
irai jpplr dai Kind- irtfrfi L 
m r-- hpp I - - d*r* 1^- *r|, Mc& 
arm iap|r d-i' « <ii"l MVr 
jra-jppkf diraiii? -\ti mo 

■ r* Apple dai H«fl!f *ki ip 

Figure 5: Listing of iPhone tool chain binaries 

# git clone git:// "${gcc}" 

# mkdir -p "${build}" 

# cd "${build}" 

# mkdir gcc-4.2-iphone 

# cd gcc-4.2-iphone 

# "${gcc}"/configure -target="${target}" \ 
-prefix="${prefix}" -with-sysroot="${sysroot}" \ 
-enable-wchar_t=no \ 

# make -]2 

# make install 

# mkdir -p "${sysroot}"/"$(dirname "${prefix}")" 

# In -s "${prefix}" "${sysroot}"/"$(dirname "${prefix}")" 

After doing all this, you should have binaries listed in 
Figure 5 in place. 

A HelloWorld application 

Let's build and deploy a simple HelloWorld application. 
To understand this code, you need to learn Objective-C. 
Apple has extensive documentation on it— check out 
developer, apple, com. 

The following is the code for Hello WorldApp.h: 
#import <CoreFoundation/CoreFoundation.h> 
#import <Foundation/Foundation.h> 
#import <UIKit/UIWindow.h> 
#import <UIKit/UIKit.h> 
#import <UIKit/UIApplication.h> 
#import <UIKit/UITextView.h> 
#import <UIKit/UIView.h> 
#import <UIKit/UIAccelerometer.h> 

©interface Hello WorldApp : UIApplication <UIAccelerometerDelegate> { 
UlView *mainView; 

UITextView *textView; I LINUX FOR YOU JUNE 2009 I 89 

Developers How To 



Given below is the code for Hello WorldApp.m: 

#import "Hello WorldApp.h" 

©implementation Hello WorldApp 
- (void) applicationDidFinishLaunching: (id) unused 
UlWindow *window; 

window = [[UlWindow alloc] initWithFrame:[[UIScreen mainScreen] 

/* Create a text view */ 

text View = [[UITextView alloc] 

initWithFrame: CGRectMake(0.0f, 48.01 320.0f, lOO.Of)]; 
[text View setText:@"Ciao"]; 

/* Create a main view and add our text view as subview */ 

main View = [[UlView alloc] initWithFrame: [[UlScreen mainScreen] bounds]]; 

[main View addSubview:textView]; 

/* Setup window */ 

[window makeKey And Visible]; 

[window addSubview: main View]; 


itself. This is located in 

/itoolchain/ pre/bin. 

-o Hello World tells the 

compiler to output the 

compiled executable 

to a file named 


Main.m is the name 

of the source file(s) 

being included in the 

program, separated 

by spaces. The .m 

extension tells the 

compiler that the 

sources are written in 


-lobjc tells the compiler 

to link in the tool 

chain's Objective-C messaging library, which is needed by 

all iPhone applications. 

-framework CoreFoundation -framework Foundation 

are two of the base frameworks to be linked into the 

application. Depending on what components of the 

operating system are being used in the code, different 

frameworks provide different functionality. 

-march=armv6 -mcpu=armll76jzfs sets the correct 

architecture and CPU type of the executable. 

Now create the iPhone .app (Application) file: 

$cp -p HelloWorld ./ 

Figure 6: The HelloWorld app -yes, it does 
seem dumb! 

The following is the code for Main.m: 

#import <Foundation/Foundation.h> 
#import <UIKit/UIKit.h> 
#import "Hello WorldApp.h" 

int main(int argc, char **argv) { 
int retval; 

Once the application is built, you can deploy it on your 
iPhone using scp command: 

$ scp -r root@<ip address of iphone>:/Applications 

Sign your application (required for firmware >= 2.0) 
by running the following command from the iPhone 
SSH terminal: 

NSAutoreleasePool *pool = [ [ NSAutoreleasePool alloc ] init ]; 

retval = UIApplicationMain(argc, argv, @"HelloWorldApp", @"Hello World App"); 

[pool release]; 

return retval; 


To build this application, you first have to make sure that 
cross compilers are in the path: 

$ export PATH=$PATH:/toolchain/pre/bin 

Then run the following command: 

$ arm-apple-darwin9-gcc -o HelloWorld Main.m -lobjc \ 
-framework CoreFoundation -framework Foundation \ 
-march=armv6 -mcpu=armll76jzf-s 

Here is the explanation of the above command: 
■ arm-apple-darwin9-gcc is the name of the cross-compiler 

$ ldid -S /Applications/ 

Go to the iPhone Spring Board (iPhone App launcher 
interface) and launch your application. Your application will 
look something like the screenshot in Figure 5. 

Sure I know that's a dumb application, but go check out 
the App Store and find out what's possible. E0f " t^ 

By: Kunal Deo 

The author is a veteran open source developer. He's currently 
leading two open source projects— WinOpen64 & KUN Wiki. 
He has contributed to many projects including, KDE-Solaris, 
OpenMoko and Python mw-serve. Kunal has written numerous 
articles on FOSS, Solaris and Linux-related technologies for 
various technical magazines around the globe. He is also writing 
a book titled "Porting On Open Solaris". In his free time he loves 
playing games on his XBOX360 and Playstation3. He blogs at 
kunaldeo.blogspot. com. 


Open Gurus Lets Try 

Programming in Python for Friends and Relations— Part 14 

A Musical Button 

As we discovered last month, csound can be used to create new instruments. 
Now, how about creating what sound like 'real' instruments? 

S ' y^) oundFont is a trademark of 

\^/sS E ~ mu - In the 1990s > E " mu 
came up with the idea of 
C_^^ storing samples of the sounds 

of real instruments and replaying them 
with the desired effects. The aim was 
that SoundBlaster cards from Creative 
Labs should be able to play MIDI files 

A composer can compose music and 
explore it with an 'orchestra of instruments 
even if he is alone in his studio. We, 
however, are after a more limited goal. 

The TamTam activities included in 
the OLPC/Sugar environment are really 
great tools for children to explore music 
and sounds. We will try to explore and 
understand the underlying relationship 

between csound and SoundFonts. 

On Fedora 10, SoundFonts are available 
in /usr/ share/ soundfonts. PCLite.sf2 is a 
part of the package, PersonalCopy-Lite- 
soundfont. Incidentally, this SoundFont 
is also required by Timidity++, a software 
player of MIDI files. 

On Ubuntu 8.10, the SoundFonts, 
/usr /share/ sounds/ sf2/FluidR3_ GM.sf2, are 
installed by the fluid-soundfont packages. 

The CSD file 

Create the following sf2.csd file, with the 
definition of an instrument that plays 
SoundFont notes: 


92 | JUNE 2009 | LINUX FOR YOU | 

Let's Try Open Gurus 



sr = 16000 

ksmps =160 

nchnls = 2 

gisf sfload "/usr/share/soundfonts/PCLite.sf2" 

sfpassign 0, gisf 

instr 1 

ivel = p4 

inotenum = p5 

ipreindex = p6 

iamp = p7 

al, a2 sfplay ivel, inotenum, iamp ,1, ipreindex, 

outs al, a2 


The above file structure is the same as what was 
discussed in the last article. The SoundFonts need to be 
loaded and presets (instruments) assigned. An orchestra 
instrument can play the SoundFont notes using the 
sfplay opcode. You can find out more details at www. 

The ivel parameter has a value between and 127, and 
is the velocity or the vigour with which a musician plays 
the note— this translates into volume. You can use the 
iamp parameter as a factor to further adjust the volume. 

The frequency is determined by inotenum, which 
also ranges between and 127. The MIDI notes between 
48 and 72 correspond to frequencies between 130.81Hz 
and 523.25Hz []. 
This range shows the most noticeable difference 
between the various presets. 

You may wish to experiment with various preset 
indexes, for example, is a grand piano, 24 is a guitar, 
40 is a violin, 104 is a sitar, and 117 is a drum. The index 
is displayed when you run csound for the above csd file 
(on Fedora, but not on Ubuntu). 

In the case of Ubuntu, you will need to replace 
the sfload command in the sf2.csd file by using the 
following code: 

gisf sfload "/usr/share/sounds/sf2/FluidR3_GM.sf2" 

A better definition of an instrument to play 
SoundFonts will be more complex. 

The Python code to explore the differences 

Write the following code in 

# Import the Csound API extension module, 
import csnd 

import sys 

def add_score(csound,inst, dur, amp): 
time = 
vel= 127 
for note in range(48,72): 

csound.addNote(l, time, dur, vel, note, inst, amp) 
time += dur 
csound. addScoreLine('e 2') 

# Command line parameters: 

# Instrument Index, note duration, amplification 
inst = int(sys.argv[l]) if len(sys.argv) > 1 else 
note_duration = float(sys.argv[2]) if len(sys.argv) > 2 else 0.5 
amp = float(sys.argv[3]) if len(sys.argv) > 3 else 1.0 

print 'Instrument, note duration, amplification:', inst, note_duration, amp 

# Create an instance of Csound. 
csound = csnd.CppSound() 
csound. setPythonMessageCallback() 
csound. load('sf 2. csd') 

csound. setCommand('csound -dmO -T -odac -+rtaudio=alsa temp.orc 


add_score(csound,inst, note_duration, amp) 

csound. exportForPerformance() 

csound. perform() 

The code is very similar to what we explored last 
month. The add_score method inserts notes to play on 
the first orchestra instrument. 

You may pass command line parameters to 
specify the preset index, the note duration and the 
amplification. By default, the program will play a piano 
with each note for half a second and an amplification 
factor of 1. 

The csound command in the code plays the notes 
directly and does not create an intermediary wave file. 

Try the following options to compare the notes of a 
piano being played for a short and for a longer duration. 

$ python 0.3 2 
$ python 2 2 

Now, compare a sitar with a violin: 

$ python 104 2 2 
$ python 40 2 2 

As you can imagine, you can easily spend a few 
hours studying the differences. 

A one-button music player 

So far, you have been writing a program and playing 
the notes. Can you program csound to play notes 
interactively, for example, by pressing buttons or keys? 
The answer is, of course, yes! 

The following command line option for csound will help: I LINUX FOR YOU JUNE 2009 I 93 

Open Gurus Let's Try 

-L dnam read Line-oriented realtime score events from device 'dnam' 

You may use the option to send the score in real time 
by using the device stdinl 

For the minimal application, you will have two 
widgets to set the instrument index and note number. 
You can then use a 'Play' button that will play the note 
as long as the button is pressed. 

You can create a better version by replacing the note 
number text box by multiple buttons or map keys on the 
keyboard to note numbers. 

First, you need to write the code to start the 
csound server listening on the stdin. So, write the 
following code in, which uses the sub- 
process module. It will start the csound command and 
open a pipe for stdin. 

import subprocess 

def start_csound(): 

command = ['csound -dmO -T -odac -+rtaudio=alsa -L stdin sf2.csd'] 
csd = subprocess. Popen(command, shell=True, stdin = subprocess. 


return csd 

You will need to add a line to the score section of sf2. 
csd as follows: 

i 1 180 


play = Button(root, text="Play") 

play.bind("<Button- 1 >", play_note) 

playbind("<ButtonRelease- 1 >", stop_note) 


return root 

Now, add the code to start the csound server, fill in 
the instruments of interest in the list box and start the 
GUI application. 

csd = start_csound() 

instruments = {'Piano':0, "Guitar':24, 'Violin':40, 'Sitar':104, 'Drums': 117} 


Finally, you will replace the dummy play_note and 
stop_note methods with appropriate code: 

def play_note(e): 

notenum = note_box.get() 

instr = instr_box.get(instr_box.curselection()[0]) 

preset_index = instruments [instr] 

# i line: parameters pl..p7 

# pi, p2, p3 : csound instrument, starting time, duration, 

# p4..p7: velocity, Midi Note Num, Preset Index, Amp 

csd. stdin. write('i 10-1 127 ' + notenum + ' ' + str(preset_index) + ' 

def stop_note(e): 

csd. stdin. write('i 10 \n") 

The score duration of 180 seconds ensures that 
csound will listen on stdin for three minutes before 
shutting down. There must be a better solution but I 
have not found one, so far. 

Now, you can add the code to display a minimalist and 
very plain looking Tkinter form. The form contains a list 
box to select the instrument, a text entry widget for the 
MIDI node number and a button that calls the method 
play_note when pressed and stop_note when released. You 
can fill in the code in these methods shortly. 

def play_form(): 
def play_note(e): 

def stop_note(e): 

root = Tk() 

instr_box = Listbox(root) 
for instr in instruments: 

instr_box.insert(END, instr) 

note_label=Label(root, text="Enter Note Number: 0-127") 
note_box = Entry(root) 

To play a note, you should pick up the preset index 
and note number. Then you need to construct the string 
and write it on the stdin pipe of csound. A value of -1 for 
the duration implies that you keep playing the note till 
another score command is received for the instrument. 
Since it is being played in realtime, the start time 
indicates the amount of delay after this score line has 
been received. 

So, the stop_note method is simple. It just writes 
a score to play the piano for '0' period of time with '0' 
velocity; hence, stopping the note which was being played. 

This leads to the question of how to create an 
orchestra of multiple instruments? You will need to 
modify sf2.csdt\\e to define additional instruments like 
the first one. Then, independent score commands can 
be given to each of the instruments. 

Now, imagine programming each of the many 
instruments and, then imagine the delightful effect 
when all these instruments play together. No wonder 
great composers are a rarity! EEf * t^ 

By: Dr. Anil Seth 

The author is a consultant by profession and can be reached at 



FOSS on Windows 

The AMP Factor 

Can Make Even Windows Pose as a Web Server 

As a Web developer, you need a Web server but you're stuck on Windows. Yet, there's a much better 
world beyond IIS. We present you an overview of the free(dom) alternatives. 

developing a dynamic Web page is always fun, as 
well as a challenge for the Web developer. However, 
during recession times like this, when development 
of a portal right from scratch is all the more exacting 
and you are on the look out for a platform and development 
software that's free or comes with the minimum cost, a platform- 
independent FOSS tool is always a boon. 

To begin with, WAMP (similar to a LAMP stack) is a collection 
of programs that has been used in combination to support Web 
development and can convert your Windows machine into a 
full-fledged Web server. WAMP is an acronym for its primary 
components - Windows, Apache, MySQL and PHP/Perl/Python. 

While you can find a whole gamut of WAMP packages around, 
we've picked up some of the best available in the Windows world. 


XAMPP ('X' stands for cross-platform) is available for free 
download, and contains one of the most common Web 
development technologies in a single package. Its small size 
and portability is its USP. 

XAMPP requires only one EXE file to be downloaded and runs 
with little or no requirement to configure the various components 
that make up the Web server. XAMPP is regularly updated to 
incorporate the latest releases of Apache/MySQL/PHP and Perl. It 
also comes with a number of other modules, including OpenSSL, 
mod_perl, zend optimiser and phpMyAdmin. 

Self-contained, multiple instances of XAMPP can exist on a 
single computer, and at any given instance can be copied from 
one computer to another, making it very portable. 

It is offered in two versions: a full (standard) version and 
the smaller XAMPP Lite. 

Uniform Server 

The Uniform Server is another WAMP package that is light 
(under 10 MB) and does not require installation for activation. 
It is thus a sought after tool by both novice Web masters and 
skilled developers alike, to test and develop Web applications 
on Windows, using FOSS. 

The entire package is very portable and can be carried in a 
USB drive and used on any Windows system. Developers also 
use the Uniform Server to test their applications made with 
either PHP, MySQL, Perl or Apache. A number of plug-ins can 
be installed according to requirements. For example, a small 
plug-in like UniTray allows you to command and control your 

server from the system tray. SlimFTPd is a small and easy to 
use FTP server that can be used with the Uniform Server to 
access your server with an FTP client. 


EasyPHP is another package that includes the complete AMP 
stack as well as easy development tools for websites and 
applications. It also enables a fully executable PHP. At just 15.6 
MB, this is another portable application that can be easily 
carried on a USB. With this portable application, you can carry 
your developed application along with the server. 


Apache2Triad bundles some of the most used open source 
servers and interpreters for developing Web content on the 
Windows platform. 

The development of Apache2Triad has ceased but it has 
almost all the servers, interpreters and user interfaces that are 
already configured and ready to use. It contains Apache, MySQL, 
PostgreSQL, XMail (e-mail server) and SlimFTPd (FTP server). It 
comes with different interpreters such as PHP, Perl and Python. 

Apache2Triad also makes life easy with the following GUI 
tools: Apache2TriadCP (control panel), phpMyAdmin (MySQL 
GUI), phpPgAdmin (PostgreSQL GUI), phpSQLiteAdmin (SQLite 
GUI), AWStats (webserver monitor), UebiMiau (E-mail client), 
PHPXmail (XMail GUI), and PHPsFTPd (SlimFTPd GUI). 


WampServer, formerly known asWAMP5, is a software package 
bundled with the AMP stack. It also comes with PHPMyAdmin 
and SQLiteManager to manage databases. It is one of the most 
used Windows Web development environments. 

It is supposed to be the only solution that allows 
reproduction of the production server. It is possible to install all 
new releases of Apache, MySQL and PHP as add-ons. You can 
even have multiple instances of the server. Moreover, it comes 
with a service manager as a tray icon that allows better and 
easy management of the server. 

There are many other similar OSS packages available. 
You can find a detailed comparison of all the packages at 
en. wikipedia. org/wiki/Comparison_of_ WAMPs. EEf * T^ 

By: LFY Bureau | LINUX FOR YOU | JUNE 2009 | 95 

The Joy of Programming Guest Column 

S.G. Ganesh 

Using Bitwise Operators Instead of Logical Operators 

Some bad programming practices become established as habits over time. Here's an example of one such bad practice. 

In the last few years, I have come across many code 
segments in which bitwise operators were used instead 
of logical operators. I thought it was a mistake that only 
novice programmers make. But recently while reading 
the book, Software Engineering by Ian Sommerville [1] , I 
found that he has made the same mistake. His book is well 
respected and is one of the most widely read on the subject. 
So I decided to write about this problem this month. 
Consider the following Java code ( from Iahs book): 

if ( n < | n%2== 1) 

throw new NumericException(); 

This code is a straightforward code: it is to ensure that 
n is a positive even integer— if n is some other value, a 
NumericException is thrown. In this code, the | (bitwise- 
OR) operator is used instead of the || (logical-OR) operator; 
the condition should have been this: (n< 0\\n%2== 1). 

In my experience, I have seen that most programmers 
who use | instead of 1 1 also use the & instead of the && 
operator for Boolean operands. In fact, as I had guessed, in the 
subsequent few pages in the book, there was an expression in 
an assert statement that used & instead of the && operator! In 
other words, for many programmers, using bitwise operators 
instead of logical operators becomes a (bad) habit. 

Coming back to the code; yes, it will work: if n < or 
n%2 -- 1 is true, then the //condition will evaluate to true 
and hence the exception will be thrown. So, why bother? 
To answer that, we'll have to understand some more details 
about the behaviour of bitwise and logical operators. 

First, let us compare the truth table for the | and 1 1 

A B A | B A | | B 

T T 

T F 

F T 

F F 

Here, A and B are Boolean values, and T and F stands for 
True and False, respectively. The results for A | B and A || B 
look exactly the same! Yes, it's true, and that's why programs 
that make use of | instead of 1 1 for Boolean operands mostly 
work correctly. But why is it only 'mostly'? 

The answer is that the truth table is not entirely correct. 

[1] Software Engineering, 8th Edition, Ian Sommerville, Addison Wesley, 2006 

For logical operators, there is a type of behaviour called 
'short-circuiting': the expression is evaluated only till the 
truth value of the whole expression is known. Here, when 
A is true, no matter what the value of the other argument 
(B) is, the result for the 1 1 operator is true. So, B is a 'don't 
care' value and will not be evaluated. Whereas, for bitwise 
operators, the whole expression is always evaluated. 

As you can see, this difference can cause subtle bugs in 
code. Here is a code segment ( from real-world software) 
that has a serious bug: 

if( container != null & !container.isEmpty() ) 
return container. getLength); 

Here, when container is null, the second argument 
(Icontainer.isEmptyO) is still executed, which would result 
in a null pointer access exception. Here, && is the correct 
operator to use: in which case, when the container is 
null, the expression becomes false and hence the second 
argument will not be executed. 

Programmers use bitwise and logical operators 
interchangeably for Booleans for various reasons. One 
main reason is efficiency: bitwise operators execute 
faster (doing bit-manipulation in CPU registers, which is 
faster) than logical operators (which internally perform a 
control transfer, which is slower). For most programmers, 
using such operators interchangeably creates confusion, 
and hence it's best to avoid this practice for reasons of 
efficiency— unless, for instance, it is embedded code where 
efficiency is very important. Another reason is ignorance: 
many programmers don't understand such subtle 
differences between the bitwise and logical operators. 
If the programmers come with a background in a 'non 
C-based' language, it is possible that they might make this 
mistake (many high-level languages do not support bitwise 
operators, so they use it interchangeably for Booleans). 

We'll give Ian Sommerville the benefit of doubt: he 
might have a background steeped in some other language. 
However, as programmers, we should be careful about 
the programming practices we follow since many of them 
become habits later. EEf t^ 

s -\ 

About the author: 

S G Ganesh is a research engineer in Siemens (Corporate 
Technology). His latest book is "60 Tips on Object Oriented 
Programming", published by Tata McGraw-Hill. You can reach 
him at 

96 | JUNE 2009 | LINUX FOR YOU | 

Hotel Management • Hospitality • Foreign Education • Animation & Graphics • Computer Hardware • Computer Software 


"I Wish I Could Get 

Unbiased Guidance 

From Industry Experts 



2 O O 9 

Get career Guidance from 
Industry experts 

Over 100 institutions Offering 
graduation & post graduation 
Under a single roof 

2 O O 9 

Entry FREE from Gate No. 7 

13-14 JUNE 2009 


For Enquiries: 011-26810601/02/03 

Confused about youi 



help you DECIDE 

~*= :■ %f\¥ 

Engineering Medical Software 

2 f - 

Management Hospitality Animation 

Exclusive Media Partner Ca P tive Audience Media Partner 


Magazine partner) 

^vAci (Jt»ftt *Aw? P*C'" l»'-W 



Online Partner 



CodeSport * 

I f ^ 

Sandya Mannarswamy 

Welcome to another instalment of 'CodeSport'. In this month's column, we will 
look at finding the inversion of a given permutation. We'll then discuss how to 
write efficient and correct code for multi-threaded applications. 

X y m 'hanks to all the readers who 
\^^// had sent in their comments 

to the problems we discussed 
in the previous issue. Last 
month's takeaway problem was on finding 
the number of inversions in a permutation. 
Inversions form the basis for analysing the 
time complexity of sorting algorithms. 

The inversion of a permutation is defined 
as follows: 

■ Permutation: 623 147895 

■ Inversion: 3 111 4 
Here, 1 has an inversion 3 as there are 

three elements greater than 1 that are left to 
1 in the given permutation, and these are 6, 2, 
and 3. Similarly, 2 has an inversion 1 because 
there is only one element left to 2 which is 
greater than 2, and that is 6. The problem was 
to find the inversion of a permutation in the 
O(nlogn) time complexity even at the cost of 
some memory. 

Since I did not get any completely correct 
solutions, I am going to keep this question 
open for readers to respond to through 
this month also. Just to give you all a hint, 
recall the fact that a merge sort has a time 
complexity of O(nlogn). Can the merge sort 
algorithm be modified to get the correct 
solution to the above question? Remember 
that a sorted array has no inversions. 

This month's discussion 

Most of the readers of LFY would know about 
the advent of multi-core processors and how 
they are likely to lead to a proliferation of 
multi-threaded software development. I had 
a few readers who had written in, requesting 
for a discussion on coding issues related to 

writing multi-threaded code. Therefore, for 
the next three columns, we will be focusing 
on multi-threaded code, discussing some 
basic concepts of concurrency, what are the 
issues that a developer faces when writing 
multithreaded code, and what pitfalls he 
should try to avoid. 

Why should I make my code 

You may ask why is there a sudden focus 
on multi-threaded code development. After 
all, as per Moore's law, processor speed 
doubles approximately every 18 months, 
thereby allowing the developer to take 
advantage of faster processors to speed up 
his applications. Well, the answer is that 
processor vendors are now finding that we 
have reached the limits of Moore's Law and 
it is no longer possible for the developers to 
depend on newer chips with faster clocks 
to speed up their applications. Why is that 
so? Due to thermal power and chip area 
restrictions, processor vendors are turning 
to multi-core processor designs, wherein 
each chip contains multiple cores, rather 
than speeding up the clock frequency of the 
processor itself. This in turn means that a 
single-threaded application running on one 
core of a newer multi-core processor can in 
fact run slower on that than on your existing 
and older non multi-core processor (which 
has a higher clock frequency). So if you are 
a software developer, to take advantage of 
these newer multi-core processors, you need 
to write multi-threaded code so that each 
thread can run on a separate core, thereby 
parallelising your application and making 

98 | JUNE 2009 | LINUX FOR YOU | 

Guest Column CodeSport 

it run quicker, overall. Hence, more and more software 
developers are turning to writing multi-threaded code in 
order to improve their application performance on multi- 
core processors. 

One of the earliest and best articles to call attention 
to this paradigm shift was "The Free Lunch Is Over: A 
Fundamental Turn Toward Concurrency in Software" by 
the well known software guru, Herb Sutter. Interested 
readers can find this at 
concurrency-ddj.htm. It is a must read for every software 
developer who plans to write multi-threaded code. 

Why is writing multi-threaded code difficult? 

Writing robust multi-threaded code that gives a good 
performance is totally a different ball game. It is not just 
learning a new API or new language. It requires a major 
shift in the mindset of developers, since for every line of 
code in an application, developers need to answer the 
following questions: 

■ Can more than one thread execute this line of code 

■ What is the data getting read/written in this line of 

■ Can some other thread read/modify this data 

■ How do I ensure that my application is making 
forward progress? 

■ Can this line of code containing a call to lock_ 
acquire lead to deadlocking my application? 
Most programmers are conditioned to think in 

sequential mode. It is much easier to envisage an event 
A' as happening sequentially after an event 'B' instead 
of having to visualise whether parts of event A can 
be interleaved with parts of event 'B'. However, since 
thread scheduling is non-deterministic, in order to 
facilitate robustness, multi-threaded code development 
requires that access to shared resources including 
data, should be protected by means of synchronisation. 
Threads also need to communicate with each other and 
exchange data, as part of the application logic. 

The requirement that threads need to use proper 
synchronisation in order to protect shared accesses 
leads to two of the most dreaded problems in multi- 
threaded software development, namely, (a) race 
condition and (b), deadlock. 

Data race conditions 

Consider the following piece of code: 

static class TicktCounter { 

static int curr_ticket_counter = 0; 
static int GetNextTicketId() { 

return curr_ticket_counter++; 

While the above snippet of code would be perfectly 
correct in providing a unique ticket ID to each 
caller in a single-threaded application, do you see 
what can happen if it is invoked in a multi-threaded 
application where more than one thread can call the 
GetNextTicketld function concurrently? It is possible 
that two threads are given the same ticket ID in this 
case. How can this happen? The single line of code 
'return curr_ticket_counter++' actually consists of the 
following three actions: 

■ Read the current value from the shared curr_ticket_ 
counter variable into a register. 

■ Add 1 to that register value. 

■ Write the register value back to the shared variable 

Two threads executing this same function 
concurrently can both read the same value from curr_ 
ticket_counter (say, 100), increment their local register 
to 101, and publish the same resulting value. Hence 
both threads get the value of 100 from the function. 
Why did this happen? This inconsistency occurred 
because the simple statement ' curr_ticket_counter++' 
appears atomic to the developer writing the function 
' GetNextTicketld' whereas it is actually not atomic. 
Hence, there is a race on the shared variable 'curr_ 
ticket_counter and this code has a race condition. 

A data race occurs in a multi-threaded program 
when two threads access the same memory location 
without any intervening synchronisation operations, 
and at least one of the accesses is a write. 

Now, how can we modify the above code to avoid 
the data race on the variable ' curr_ticket_counter*? The 
obvious answer is synchronisation, namely, using a lock 
to protect the access to the shared variable: 

static int GetNextTicketId() 

int my_ticket; 


my_ticket = curr_ticket_counter++; 


return my_ticket; 

Can we assume that if we lock before accessing the 
shared variable and unlock after accessing the shared 
variable meticulously, our multi-threaded code will 
always work correctly? The answer is not as simple 
as that. You can use lock/unlock function around 
every shared variable access and still end up with 
an inconsistent multi-threaded code. Consider the 
following code snippet: 
void Withdraw (int account, int money) 

pthread_mutex_lock(&account_lock /* for that account /*); 

//get the curr_balance for this account and increment it | LINUX FOR YOU | JUNE 2009 | 99 

CodeSport Guest Column 

curr_balance[account] = curr_balance[account] - money; 
pthread_mutex_unlock(&account_lock /* for that account*/); 

void Deposit (int account, int money) 

pthread_mutex_lock(&account_lock /* for that account */); 

//get the curr_balance for this account and increment it 

curr_balance [account] = curr_balance [account] + money; 

pthread_mutex_unlock(&account_lock /* for that account */); 


The above code contains two functions: Withdraw, 
which debits a bank account with a specified amount of 
money by decrementing the shared variable curr_balance; 
and the function, Deposit, which increments curr_balance 
by the amount being deposited. As we can see, both the 
accesses to curr_balance are properly protected by the 
same lock account_lock and everything seems absolutely 
correct. So what can be the problem? 

A new developer maintaining the code decides to 
add a function called transfer, which allows a customer 
to transfer money from account A to account B. He 
implements the function, transfer, as follows: 

pthread_mutex_lock(&account_lock /* for 'from_account' /*); 
pthread_mutex_lock(&account_lock /* for 'to_account' /*); 
curr_balance[from_account] = curr_balance[from_account] - money; 
curr_balance[to_account] = curr_balance[to_account] + money; 
pthread_mutex_unlock(&account_lock /* for 'from_account' */): 
pthread_mutex_unlock(&account_lock /* for 'to_account' */); 

Transferring money from one account to another 
needs to be performed as a single atomic transaction. 
Hence the locks required for both the accounts need to 
be held while we debit one account and credit the other. 
Else the system state as seen by an external entity can 
be inconsistent, as we realised in the example above. 
We will continue our discussion on atomicity, race 
conditions and deadlock in next month's column. 

This month's takeaway problem 

This month's takeaway problem is again to do with 
multi-threaded code and is quite simple. Can you detect 
what may be the issue in the following code snippet: 

void BookTicket(int row, int column) 

void Transfer (int from_account, int to_account, int money) 

Withdraw(from_account, money); 
Deposit(to_account, money); 

pthread_mutex_lock(&row_lock ); 
ticket[row] [column], status = 'booked'; 

What is wrong with the above piece of code? Well, 
since we have a multi-threaded program, let us assume 
that we have a thread that queries and adds up the total 
balance in all accounts. Let us further assume that this 
thread queries the currjbalance in each account to 
calculate the total balance. If this thread is scheduled 
and queries the curr_balance in from_account and 
to_account in the time period between the call to 
Withdraw and the call to Deposit in the function 
transfer, it will find that curr_balance in the from_ 
account has been debited while the curr_balance in the 
to_account has not been incremented yet. There is this 
time window where the money is missing completely 
from the books of the bank and the balance reporting 
thread will report incorrect results. 

So where did we go wrong? We did acquire the locks 
correctly in both the Withdraw and Deposit functions. 
However, we missed the point that the function 
Transfer should be an atomic operation, and that both 
debiting the from_account and crediting the to_account 
should be done atomically. Hence the correct code for 
Transfer should look as follows: 

void Transfer (int from_account, int to_account, int money) 


void CancelTicket(int row, int column) 


pthread_mutex_lock(&column_lock ); 


ticket[row] [column], status = 'cancelled'; 



Note that two threads can concurrently issue 
booking and cancellation requests to the same ticket 
(same row and same column) and the system has to 
work correctly. 

If you have any favourite programming puzzles that 
you would like to discuss on this forum, please send 
them to me. Also, do send your solutions and feedback 
to sandyasm_AT_yahoo_DOT_com. Till we meet again 
next month, happy programming! EEf" t 

About the author: 

Sandya Mannarswamy. The author is a specialist in compiler 
optimisation and works at Hewlett-Packard India. She has a number 
of publications and patents to her credit, and her areas of interest 
include virtualisation technologies and software development tools. 

100 | JUNE 2009 | LINUX FOR YOU | 

We have crossed 2.5 million hits per month ! 

Join These Growing Numbers And Benefit. 



A comprehensive portal on electronics 
Popular sections 

Circuit Lab 

Hundreds of circuit diagrams of different projects, for FREE 

Top 100 

Most popular technology websites, measured by their hits 


A comprehensive list of technical events, in India and abroad 

Looking for something related to electronics? Try This website has circuit diagrams, technical articles, 
bulletin board, dedicated index of electronics websites, list of popular websites ranked by name it, it's got it. 

Check it out today! 

y^EFY EFY Enterprises Pvt Ltd D-87/1 , Okhla Industrial Area, Phase I, New Delhi 110020 
^ \S^ Phone:(011)26810601-03 Fax: (011) 26817563/26812312 Email : 

A Voyage to the 




Segment 3.2: Day 12 

Part 13 

In the last column we focused on some of the fundamentals in kernel programming. We 
are going to dedicate today's voyage to reviewing some more basic literature. 

y^s I mentioned before, present day 
(*\// CPUs can run in two modes -- kernel 
wj/ mode and user mode. Interrupt 
C^^r drivers and operating system services 
are examples of those that can run in kernel 
mode. In this mode, free access to the entire 
memory and device registers are supported 
with the help of an extended set' of instructions. 
While when the CPU runs in user mode, it will 
have access only to a specific restricted set of 
instructions (the CPU cannot use the entire 
memory in this case). These two modes are 
used for security reasons. This, in turn, provides 
reliability to the operating systems. Normally, a 
program uses the user mode (which is 'safer'). 
When it needs more utilities and restricted 
resources, it will switch over to the kernel mode. 
Systems calls are used to access kernel utilities 
and are essentially operating system services. 
These software interrupts are processed by the 
OS as kernel mode processes. 

We can see a system call list maintained 
by the OS and it has respective pointers to the 
functions that can implement the calls in the 
kernel. Here, you can see a list of such system 
calls (from the syscallhfile): 

#ifndef _SYSCALL_H 
#define _SYSCALL_H 1 

/* This file should list the numbers of the system the system 

But instead of duplicating this we use the information 

from the kernel sources. */ 

#include <asm/unistd.h> 

#ifndef _LIBC 

/* The Linux kernel header file defines macros * NR_<name>\ 

but some 

programs expect the traditional form *SYS_<name>". So in 
building libc 

we scan the kernel's list and produce <bits/syscall.h> with 
macros for 

all the X SYS_' names. */ 
# include <bits/syscall.h> 


This code is taken from the GNU C library. 
Here, you can see a dependency file. And you 
may find some of those included in the sidebox 
on 'syscalls'. 

OS services can be well accessed using 
these calls. In the last column, we discussed the 
module programming part. There we stumbled 
upon two types of modules— essential and 
loadable. As the name suggests, the loadable 
ones can be loaded (or unloaded) based on the 
needs of the user (or program). These modules 
can provide extra utilities and modes to the 
kernel. As most of the readers would be aware of 
the basic differences between a micro kernel and 
a monolithic one, you can understand why some 
of them are arguing for micro kernel model! 

If a new functionality offered by the 'module' 
has to be added directly to the original code, 
then it will be tedious, as you need to rebuild it 
very time you add a new portion of extra code'! 

102 | JUNE 2009 | LINUX FOR YOU | 

. Guest Column A Voyage to the Kernel 

The kernel programming can be really hectic because 
of the long debugging cycle. Thus, we go for loadable 
modules in kernel development. Linux is a modern 
monolithic kernel that can support loadable 'modules'. 
We have already seen how to write a simple module. And 
here we will investigate more about the process. 
If you use loadable modules for programming 
purposes, then you need not reboot the system every 
time. I will illustrate this with the help of an example: 
#include <stdio.h> 
int main(void) 


FILE *samplefile; 
char tempstring[1024]; 

fprintf(stderr, "System could not open the file\n"); 






The above code can be used to open a particular file 
and print the contents of the file. It should be noted 
that the system calls and library functions are different 
things. The main difference is that library functions are 
not attached to the kernel. 

In the code, we have tried to use fopen (which is 
not a system call) to open the passwd file. But we can 
see the system calls invoked by a program by using the 
strace utility. 

aasisvinayak@GNU-BOX:~/Documents/Desktop$ strace ./sample.out 

execve("./sample.out", ["./sample.out"], [/* 36 vars */]) = 

brk(O) = 0x854e000 

access("/etc/", F_OK) = -1 ENOENT (No such file or 



ANONYMOUS, -1,0) = 0xb7efa000 

access("/etc/", R_OK) = -1 ENOENT (No such file or 


open("/etc/", 0_RDONLY) = 3 

fstat64(3, {st_mode=S_IFREG 1 0644, st_size= 137651, ...}) = 

mmap2(NULL, 137651, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7ed8000 

close(3) = 

access("/etc/", F_OK) = -1 ENOENT (No such file or 


open("/lib/tls/i686/cmov/", 0_RDONLY) = 3 

read(3, "\ 1 77ELF\ 1 \ 1 \ 1 \0\0\0\0\0\0\0\0\0\3\0\3\0\ 1 \0\0\0\340g\ 1 ". ... 5 1 2) 

= 512 

fstat64(3, {st_mode=S_IFREG|0755, st_size= 1425800, ...}) = 


DENYWRITE, 3, 0) = 0xb7d7a000 

Few important syscall declarations 

#define SYS_adjtimex NR_adjtimex 

#define SYS_afs_syscall NR_afs_syscall 

#define SYS_alarm _NR_alarm 
#define SYS_brk_NR_brk 

#define SYS_capget NR_capget 

#define SYS_capset NR_capset 

#define SYS_chdir _NR_chdir 

#define SYS_get_mempolicy NR_get_mempolicy 

#define SYS_get_robust_list NR_get_robust_list 

#define SYS_get_thread_area NR_get_thread_area 

#define SYS_getcwd NR_getcwd 

#define SYS_getdents _NR_getdents 
#define SYS_getdents64 _NR_getdents64 

#define SYS_getegid NR_getegid 

#define SYS_pipe _NR_pipe 
#define SYS_pipe2 _NR_pipe2 

#define SYS_pivot_root NR_pivot_root 

#define SYS_poll _NR_poll 
#define SYS_ppoll _NR_ppoll 
#define SYS_prctl _NR_prctl 
#define SYS_msgctl _NR_msgctl 

#define SYS_msgget NR_msgget 

#define SYS_msgrcv NR_msgrcv 

Because of space constraints, I could not include all the 
calls here. But we will be discussing them in future columns. 

mmap2(0xb7ed2000, 12288, PROT_READ | PROT_WRITE, MAP_ 

PRIVATE | MAP_FIXED | MAP_DENY WRITE, 3, 0x158) = 0xb7ed2000 

mmap2(0xb7ed5000, 9840, PROT_READ|PROT_WRITE, MAP_ 

PRIVATE | MAP_FIXED | MAP_ANONYMOUS, -1,0) = 0xb7ed5000 

close(3) = 


ANONYMOUS, -1,0) = 0xb7d79000 

set_thread_area({entry_number:-l -> 6, base_addr:0xb7d796b0, 

limit: 1048575, seg_32bit:l, contents:0, read_exec_only:0, limit_in_pages:l, 

seg_not_present:0, useable: 1}) = 

mprotect(0xb7ed2000, 8192, PROT_READ) = 

mprotect(0x8049000, 4096, PROT_READ) = 

mprotect(0xb7f 17000, 4096, PROT_READ) = 

munmap(0xb7ed8000, 137651) = 

brk(0) = 0x854e000 

brk(0x856f000) = 0x856f000 

open("/etc/passwd", 0_RDONLY) = 3 

fstat64(3, {st_mode=S_IFREG 1 0644, st_size=1969, ...}) = 


ANONYMOUS, -1,0) = 0xb7ef9000 

read(3, "root:x:0:0:root:/root:/bin/bash\n"..., 4096) = 1969 

fstat64(l, {st_mode=S_IFCHR 1 0620, st_rdev=makedev(136, 0), ...}) = 


ANONYMOUS, -1,0) = 0xb7ef8000 

write( 1 , "administrator, , , :/var/lib/postgr". . . , 47administrator, , , :/var/lib/ 
postgresql:/bin/bash | LINUX FOR YOU | JUNE 2009 | 103 

A Voyage to the Kernel Guest Column 

) = 47 

read(3, "", 4096) = 


share/] etty : /bin/false 

) = 47 

exit_group(0) = ? 

Process 16610 detached 

#define kfree_s(a,b) kfree(a) 

It is good to note that static memory allocation is 
also handled in a similar way. The initialisation routine 
for character-oriented devices for this is handled by: 

memory _start = console_init(memory_start,memory_end); 

A close review of the above lines will give you a lucid 
picture about the invoked actions. Now, we will look at 
how to load the module. Let's have some new code: 

#include <linux/kernel.h> 
#include <sys/syscall.h> 
#include <linux/module.h> 

extern void *sys_table[]; 
asmlinkage int (*main_sys_exit)(int); 
asmlinkage int alt_exit_function(int err_code) 

printk("Sys_exit called with err_code=%d\n",err_code); 

return main_sys_exit(err_code); 

int init_module() 

main_sys_exit=sys_table[ NR_exit]; 

sys_table[ NR_exit]=alt_exit_f unction; 


void cleanup_module() 


sys_table[ NR_exit]=main_sys_exit; 


You can run: 

gcc -Wall -DMODULE -D_KERNEL_ -DLINUX -c sample2.c compile the code (which is assumed to be saved 
as sample2.c). Then you can use: 

insmod filename. o // where filename is your file name insert this module. You can use Ismod to list the 
loaded modules. 

When a system function is initiated by a program, 
the process switches to kernel mode. In the x86 family 
architecture, a system call is normally initiated by 
the software interrupt 128 (0KI80) being triggered. 
Now, let's take the case of the memory. In some cases, 
we may require dynamic memory allocation. An apt 
example is when you deal with temporary buffers. The 
functions used for this are kmallocQ and kfreeQ, which 
are implemented in the kmalloc file: 

void * kmalLoc (size_t size, int priority); 
void kfree (void *obj); 

For mapping functions we can have the functions in 
the header file sys/mman.h: 

extern caddr_t mmap (caddr_t addr, size_t len, 

int prot, int flags, int fd, off_t off); 

extern int munmap (caddr_t addr, size_t len); 

extern int mprotect (caddr_t addr, size_t len, int prot); 

extern int msync; 

An overview of the Linux kernel 

We have seen some basic aspects of modules. Before we 
proceed, we need to go over some more general ideas 
about the Linux kernel. This is required for writing new 
modules and building your own custom kernel. In fact, 
there are some quick methods you can employ while 
making a custom package. For example, you can get the 
list of modules required to run during the boot process 
by looking at the kernel configuration (which is located 
in your current distribution's kernel package). 

We can generally classify the Linux files as: 

Regular files 


Symbolic link 

Block-oriented device files 

Character-oriented device files 

Pipes (also called 'named pipes') 


Beginners should note that Linux treats even 
directories as files. We prefer GNU/Linux OS because of 
its unique features. For novices, let me summarise some 
of the main features here: 

■ Multi-tasking (here processes run independent of 
each other) 

■ Multi-user access (Linux allows a number of users to 
work at the same time) 

■ Multi-processing (supports multi-processor 

■ Architecture independence (works on a variety of 
hardware platforms) 

■ Support for loadable executables 

■ Paging * 

■ Dynamic cache for hard disks 

■ Shared libraries 

■ Support for POSIX 

■ Different formats for executable files 

■ Memory protected mode 

■ Support for national keyboards and fonts 

■ Different file systems are supported 

104 | JUNE 2009 | LINUX FOR YOU | 

. Guest Column A Voyage to the Kernel 

umsdos kernel boot mm math-emu f asm-spare 

Figure 1: Linux in a tree structure. 

■ TCP/IP, SLIP and PPP support 

''"Though there are different mechanisms for efficient 
memory management, sometimes it may be eaten 
away In that case, the OS looks for 4 KB memory pages 
that can be made free. Then the pages whose contents 
are already stored on the hard disk are identified and 

The ability to support modules is really an amazing 
feature. In fact, there are few differences between 
normal programs and modules. In the case of normal C 
programs, they usually begin with a main ( ) function 
and then execute a set of instructions. But in the case 
of modules, there will be an init_module or the 
function you point using the module_init call. This 
essentially speaks about the functionality that it can 
provide. And these modules end by calling cleanup_ 
module (or like in the first case, the function you 
specify using a module_exit call). 

We have seen that for a system call to perform, there 
should be a transition from user mode to the system 
mode. This is handled with the help of interrupts. 

The parameters sys_call_num and sys_call_args are 
used to represent the number of the system call and its 
arguments. For example, we can have: 

SAMPLE system_call( int sys_call_num , sys_call_args ) 

The getpidQ system call basically returns the process 
ID of the calling process. But it should not be used 
for constructing temporary file names due to security 

For this purpose, we can use: 
asmlinkage int sys_getpid(void) 

return current- >pid; 

Remember the printk we have used before? Beginners 
might find it hard to cope with new functions (which 
may appear undefined to them). To put it in simple 
words, I can say that there are functions available to 
modules. Here, too, you can find an included header 
file (more details about the subject can be accessed at 

And now let me describe a few commands (and their 
actions) for your reference. It will be useful when we 
proceed further: 

• kill (send a signal to a process) 

#include <sys/types.h> 
#include <signal.h> 


kill(pid_t pid, int sig); 

• init (process control initialisation) 


init [0 | 1 | 6 | c | q] 

• telnetd 

/usr/libexec/telnetd [-46BUhlkn] [-D debugmode] [-S tos] [-X 

[-a authmode] [-edebug] [-p loginprog] [-u len] 
[-debug [port]] 

• gethostname, sethostname 

#include <unistd.h> 


gethostname(char *name, size_t namelen); 

Let's look at some examples to comprehend this in a 
better way. 


sethostname(const char *name, int namelen); 

getpid (and getppid) 
#include <sys/types.h> 
#include <unistd.h> 



We will continue to dedicate a few more days to 
review the literature. Happy kernel hacking! EJESf " T^ 

By: Aasis Vinayak PG 

The author is a hacker and a free software activist who does 
programming in the open source domain. He is the developer 
of V-language — a programming language that employs Al 
and ANN. His research work/publications are available at | LINUX FOR YOU | JUNE 2009 | 105 

Developers Overview 



on a 3x3-1 nch Board 

The Beagle Board is a generic board powered by an 
OMAP3530 processor. It is backed by a highly-active 
community which maintains its own portal that invites 
discussion, queries, ideas and other inputs from all over 
the world — the first of its kind. 

f ~~\ he Beagle Board, an open 
source initiative by Texas 
Instruments, was launched 
to the public around a year 
back. It was developed by a small team at 
Texas Instruments, led by Khasim Syed 
Mohammed, who's the lead developer for 
open platforms at TI. It's called the Beagle 
Board because of its dimensions. A beagle 
is a breed of short and cute dogs, which the 
team found similar to this 3x3 inch (7.6x7.6 
cm) board. It's a low-cost, fan-less, single 
board computer with a high performance 
embedded platform, which is based on Texas 
Instruments' OMAP3530 technology. 

"The idea of a Beagle Board was born a 
year back and I have been involved in this 
initiative from the very beginning. It took six 
months for the team to convert this idea into 
a reality. I started with hardware enablement 
for this initiative with boot loaders, the Linux 
kernel and drivers, validation, documentation, 
promotions, etc," notes Syed. "Ever since its 
launch, I've been promoting Beagle Board 
among university students and the small-scale 
IT sector in India, continuing in enabling a 
global community to be built around OMAP3 
technology. Apart from other activities, I've also 

been working to demonstrate the capability 
of OMAP3 architecture in the medical, 
infotainment, portable navigation and low- 
power industrial sectors." 

The interesting point to note here is 
that the board is targeted at the open 
source developers, which seemed obvious 
considering the lead developer's passion for 
open source. "I was interested in computers 
right from my early days. After my school, 
I started learning computers and during 
my internship on TI's DSP, my curiosity 
for embedded applications increased 
enormously. Moving forward, I found open 
source to be more useful since it was free and 
gave me all the necessary software blocks 
'with source' to build end-to-end solutions," 
reveals Syed. "I started as a user/consumer 
of open source software and forums. While 
working closely with the OMAP Linux 
community, I found significant gaps in our 
offerings to the open community. I joined 
Jason Kridner and Gerald Coley at TI to 
bridge and address these gaps through 
beagleboard. org! 

He adds: "I am an enabler and a contributor 
of open software in the community. The 
demand for consumer devices is growing 

106 | JUNE 2009 | LINUX FOR YOU | 

Overview Developers 

at a fast rate and we need to match this pace of demand 
and supply. Open source initiatives will be playing a major 
role in building an open ecosystem to enable innovations, 
implementing them in products and to meet the global 
demand for consumer products. These are some of the areas 
that I've been trying to cater to through the Beagle Board 

Open source software is in fact embedded into the 
board— it consists of a boot loader, various libraries, Linux 
kernel and applications running on top of it. 

What's in a board? 

The revision C of Beagle Board was introduced in May 
2009— in India, Cranes Software International is the official 
distributor. So, coming back to our real question: what can 
a developer look for in the board? 

First, the OMAP3530 processor. OMAP3530 is a 
high end, multi-core, application processor with ARM 
Cortex A8, Generic C64x DSP and an SGX 3D graphics 
accelerator. With the ARM running at 600 MHz, DSP at 
430 MHz, SGX at 111MHz, the effective total system power 
becomes 1.2GHz. This gives developers an opportunity 
to explore a variety of desktop applications on hand-held 
devices with much lower power consumption compared 
to any other x86 or Intel Atom-based devices. What's 
even more interesting is that the board can run desktop 

applications— the office suite, GIMP, 
Firefox, etc— with only 2 watts of power consumption. 
With respect to heat dissipation, the OMAP3530 processor 
is rather superior. There's no need for any sort of cooling 
device (like a heat sink or a fan) as the temperature 
remains below 50 degrees Celsius. Now, that's what we call 
an ideal green computing device. 

Although there are a lot of interfaces available on 
the board, the high speed USB and USB OTG are worth 
mentioning first. A single high-speed USB on the board 
can be used to connect 128 devices with the help of a hub. 
However, when we use a high speed USB port, the USB 
host acts only as the master and the device acts as a slave. 
A USB OTG allows the host to behave either as a master 
or a slave, but not at the same time. When the USB OTG is 
behaving as a host, it should be connected to a 5V power 
supply. But, when connected to a PC, it behaves as a slave. 

It's no surprise that the device, according to the 
manufacturers, is aimed at exploring and developing 
applications on OpenGL, OpenMax,, Open 
CV, Browsers, 3D gaming, GStreamer, 3D UI, etc. But would 
the device be able to run all these applications in parallel? 
In which case, how much power will the device typically 
consume? Would a cell phone-like battery be enough to 
support it for hours? Also, how much RAM can be fitted 
into the board to take care of intensive multi-tasking? 

South Delhi centre is the India's only Dedicated Learning Centre for Red Hat Linux. 



for networking, for life 

Fart #1 - Given 628+ Red Hat Certified professionals (RHCE + RHCSS) 
in last 13 months, with BEST result in Asia-Pacific region. 

RHCE | RHCSS | Virtualization 

■ i!4fckl 23.06.09 

24.06.09 I 

■ :)!N J 29th & 30th June, 09 

red hat. 




South Delhi : A-184, Bhisham Pitamah Marg, Opp. Defence Colony, Delhi-2 Tel. : 46526980-2, 9310024503 
East Delhi : 508, DDA Complex, Laxmi Nagar Distt. Centre, Delhi-92 Tel. : 42448951-2, 9310024502 
North Delhi : 2513, Hudson Lane, Kingsway, Camp, North Campus, Delhi-9 Tel. : 65156734, 9310024501 j LINUX FOR YOU I JUNE 2009 I 107 

Developers Overview 

• 0MAP3530 Processor 

■ ARM 600MHz ARM Cortex-A8 
(>1200 DMIPS) 

■ Over 1 billion dhrystones per 
second with NEON and VFP 

■ 2D/3D graphics accelerator 

■ C64x+ DSP and video 

• 256MB DDR @166Mhz 

• 256MB NAND 

• High Speed USB 2.0 OTG 

• High Speed USB HOST 

• S-Video (TV out) 

• DVI-D 

• Stereo Audio Out & In 

• 8-bit SD/MMC 



• Expansion connector to provide 
extended connectivity with standard 
connections like: 


■ LCD expansion — The new LCD 
interface can be used with an 
adapter board to connect to 
displays, including RGB LCD 
panels and LVDS panels. 

■ PWM — The expansion connector 
now provides three pulse width 
modulation (PWM) signals for 
motor driver functions or PWM 
signalling, typically used in 

Syed quips, "The RAM is fixed 
for 256 MB and is not expandable; 
therefore memory requirement 
is a constraint to run all these 
applications in parallel. But it's a 
board limitation rather than one 
related to the processor. A cell phone- 
like battery is sufficient to support all 
these applications, but definitely not 
for hours when run in parallel. The 
OMAP3530 chip supports ~ 82hrs of 
audio (1400mAh) and ~ 4hrs of video 

Moreover, the Beagle Board is also 
provided with a S-Video and a DVT-D 
port. They can be used for connecting 
to a TV and a monitor respectively. 
The UART is a serial port and it helps 
a developer for kernel-level debugging. 

The JTAG cable that is provided can be 
used for JTAG-based simulator and low- 
level debugging. The device also has 
an 8-bit SD/MMC, which can be used 
as a hard disk. The PWM expansion 
connector provides three pulse width 
modulation (PWM) signals for motor 
driver functions or PWM signalling, 
typically used in robotics. 

Now, what about the scope for 
expandability of the board? The 
board is designed to use standard 
(PC) peripherals like a DVT, keyboard, 
mouse, Ethernet, Bluetooth, Wi- 
Fi, hard disk (over USB), etc. You 
can upgrade/change/expand these 
peripherals based on need. The 
board also provides an expansion 
header that provides OMAP3530 pin 
outs to interface with any external 
device over SPI, MMC, I2C and GPIO 
interfaces. A few examples are: 

1. Beagle is used by an open 
community member to build an 
open software defined radio— 

2. The expansion header can be 
used to connect this to an ADC 
(analogue to digital converters), 
and process the live samples on 
DSP and use ARM for the host 

3. TI DLP Pico projector can be 
interfaced through the DVT 
interface on Beagle Board and 
the framebuffer content can be 
projected [ 

4. With Angstrom distribution 
ported, the board can be used as a 
regular desktop. 

5. Android is supported by community. 

6. u-buntu (the Canonical port for 
ARM Cortex A8) will bring in 
thousands of apps on Beagle Board. 
The bottom line is that, as a 

developer, you can use it for Web 
services, 3D gaming, for the Linux 
kernel and drivers, boot loaders 
and firmware, portable media and 
infotainment applications, the 
UI framework, high- end signal 
processing with generic DSP, OLPC 
applications like Sugar— in short, the 
possibilities are endless; you'll only 

have to let your imagination run wild. 
Just to give you an idea, you might 
want to check out all the current 
projects that are under way at www. So, what 
are you waiting for? Take a bite at this 
'Open Platform'. 

Syed notes, "While there are 
numerous theoretical concepts 
available today, these could be 
executed with 'Open Platforms', 
which is a new trend in the IT 
industry where products are 
defined, designed and developed by 
consumers across the world. Ideas 
are just like raw materials. They need 
enormous energy, effort and tools 
to convert them into end products. 
Collaboration in such efforts results 
in better execution." EEf t 

References and documentation 

Beagle Board community portal: 

Technical reference manual for 

OMAP3530 processor: focus. 



communication): www-a.ti. 

com/downloads/ 'sds_support/ 

targetcontent/link/link_ 1 _50/index. 


Validation software, Linux device 

drivers, latest kernel from GIT: code. 

google, com/p/beagleboard/wiki/ 


Board schematics: beagleboard. 

org/static/BBSRM _latest.pdf 

DSP Compiler: www-a.ti. 


targetcontent/LinuxDsp Tools/ 


ARM Compiler: www.codesourcery. 

com/gnu Joolchains/ arm/ portal/ 


More links and documentation: & code. 

google, com/p/beagleboard 

Discussion list: discussion at 

beagleboard dot org 

IRC: #beagle on 

By: Atanu Datta and Abhijit Paul 

While Atanu likes to head bang and 
play air guitar in his spare time, Abhijit 
loves to hack on open source and is a 
gamer by heart. Oh, and they're also 
part of the LFY Bureau. 

108 | JUNE 2009 | LINUX FOR YOU | 



The best place for you to buy and sell FOSS products and services 


■ A cost-effective marketing tool 

■ A user-friendly format for customers to contact you 

■ A dedicated section with yellow back-ground, and hence will stand out 

■ Reaches to tech-savvy IT implementers and software developers 

■ 80% of LFY readers are either decision influencers or decision takers 

■ Discounts for listing under multiple categories 

■ Discounts for booking multiple issues 


■ Listing is categorised on the basis of products and services 

■ Complete contact details plus 30-word description of organisation 

■ Option to print the LOGO of the organisation too (extra cost) 

■ Option to change the organisation description for listings under different categories 


Category Listing 

ONE Category Rs 2,000 

TWO Categories Rs 3,500 

THREE Categories Rs 4,750 

ADDITIONAL Category Rs 1,000 

Value-add Options 

LOGO-plus-Entry Rs 500 

Highlight Entry (white background) Rs 1 ,000 

Per EXTRA word (beyond 30 words) Rs 50 


■ Above rates are per-category basis. 

■ Above rates are charges for publishing in a single issue of 

■ Max. No. of Words for Organisation Description: 30 words. 



■ Fill the form (below). 

■ You can use multiple copies of the form for multiple listings 
under different categories. 

■ Payment to be received along with booking. 


Organisation Name (70 characters): 
Description (30 words): 




Address (will not be publshed): 


_ Website: 

. Mobile:. 

_ City/Town: 











Please find enclosed a sum of Rs. . 

. by DD/ MO//crossed cheque* bearing the No. . 

EFY Enterprises Pvt Ltd, payable at Delhi. {*Please add Rs. 50 on non-metro cheque) towards the cost of 

or charge my credit card □ VISA □ Master Card Please charge Rs. 

against my credit card No. | | | | | | | | | | | | | | | | 

Date of Birth / / (dd/mm/yy) Card Expiry Date / (mm/yy) 



. in favour of 

_ FOSS Yellow Pages advertisement(s) 


_ (Mandatory) 

'f y EFY Enterprises Pvt Ltd., D-87/1 , Okhla Industrial Area, Phase 1 , New Delhi 1 1 020 
sincerely yours Ph: 01 1 -2681 0601 -03, Fax: 01 1 -2681 7565, Email:; Website: 

Signature (as on the card) 

To Book Your Listing, Call: Dhiraj (Delhi: 09811206582), Somaiah (B'lore: 09986075717) | LINUX FOR YOU | JUNE 2009 | 109 


The best place for you to buy and sell FOSS products and services 

To advertise in this section, please contact: 
Dhiraj (Delhi) 09811206582, Somaiah (Bangalore) 09986075717 

Consultant (Firm) 

IB Services 

Free Installation of GNU/Linux on 

Laptops and Desktops. Thin client 

solutions based on Debian and 

Ubuntu. Laptops and Desktops 

pre-installed with Debian and Ubuntu. 

Migration to GNU/Linux. Data 

Recovery. Navi Mumbai 


Mobile: 09847446918 


Web : 

0S3 Infotech 

•Silver Solutions Partner for Novell 
•High Availability Computing 
Solutions »End-to-end Open Source 
Solutions Provider •Certified Red 
Hat Training Partner •Corporate and 
Institutional Training 
Navi Mumbai 
Mobile: 093241 13579 

Taashee Linux Services 

1 00% Support on LINUX ,OSS 
& J BOSS related projects. We 
specialize in high-availability and 
high-performance clusters, remote 
and onsite system management, 
maintenance services, systems 
planning, Linux & JBOSS consulting 
& Support services. 

Mobile: 09392493753, Fax: 040-40131726 

Computer (UMPC) For Linux 
And Windows 

Comptek International 

World's smallest computer comptek 
wibrain B1 UMPC with Linux.Touch 
Screen, 1 GB RAM 60GB, Wi-Fi, 
Webcam, upto 6 hour battery 
(opt.), USB Port, max 1600x1200 
resolution, screen 4.8", 7.5"x3.25" 
Size, weight 526 gm. 
New Delhi 

Mobile: 09968756177, Fax: 011-26187551 

To advertise in this section, please contact 
Somaiah (Bangalore) 09986075717 

Dhiraj (Delhi) 09811206582 

Education & Training 

Aptech Limited 

IT, Multimedia and Animation 

Education and Training 


Tel: 022-28272300, 66462300 

Fax: 022-28272399 



IT-Campus: Academy of Information 

IT training and solution company with 

over 1 2 years of experience. - RHCE 

•Software Training 'Hardware Training 

•Multimedia And Animation »Web 

Designing •Financial Accounting 

Kota (Raj.) 

Tel: 0744-2503155, Mobile: 09828503155 




Mahan Computer Services (I) Limited 

Established in 1 990, the organization 
is primarily engaged in Education 
and Training through its own & 
Franchise centres in the areas of IT 
Software, Hardware, Networking, 
Retail Management and English. The 
institute also provides customized 
training for corporates. 
New Delhi 

Tel: 01 1-2591 6832-33 

Enterprise Comm. Solutions 

Cynapse India Private Limited 

We are the creators of open source 
product is a web 2,0 
group collaboration software created 
by Cynapse, that inter-connects your 
people with each other and their 
collective knowledge, seamlessly, 
It combines the capabilities of 
collaboration tools like wikis, blogs, file 
repositories, micro blogs, discussions, 
audio, videos, and other social 
applications into a seamless platform, helps teams to build collaborative 
knowledge by sharing and discussing 
various forms of digital content within 
a secure, unified application that is 
accessible using a web based interface 
or a rich desktop client, 

Tel: 022-28445858, 28445629 

Aware Consultants 

We specialize in building and 
managing Ubuntu/Debian 
Linux servers and provide good 
dependable system administration. 
We install and maintain in-house 
corporate servers. We also provide 
dedicated and shared hosting as well 
as reliable wireless/hybrid networking. 
Tel: 080-26724324 

ESQUBE Communications Solutions 
Pvt Ltd 

Founders of ESQUBE are faculty 
at the Indian Institute of Science, 
Bangalore and carry over eight 
decades of experience and 
fundamental knowledge in the field 
of DSP and Telecommunication. 
ESQUBE plays a dominant role in 
the creation of IP in the domain of 
Sensors, Signals and Systems. 
Tel: 080-23517063 

Keen & Able Computers Pvt Ltd 

Microsoft Outlook compatible open 

source Enterprise Groupware 

Mobile push, Email Syncing of 

Contacts/Calendar/Tasks with 


•Mail Archival •Mail Auditing •Instant 


New Delhi 

Tel: 011-30880046, 30880047 

Mobile: 09810477448, 09891074905 




The Innovation Company 

Netcore Solutions Pvt Ltd 

No.1 company for providing Linux 

Based Enterprise Mailing solution 

with around 1 500+ Customer all over 

India. Key Solutions: 

•Enterprise Mailing and Collaboration 

Solution *Hosted Email Security •Mail 

Archiving Solution 'Push Mail on 

Mobile •Clustering Solution 


Tel: 022-66628000 

Mobile: 09322985222 




Red Hat India Pvt Ltd 

Red Hat is the world's leading 

open source solutions provider. 

Red Hat provides high-quality, 

affordable technology with its 

operating system platform, Red 

Hat Enterprise Linux, together with 

applications, management and 

Services Oriented Architecture 

(SOA) solutions, including JBoss 

Enterprise Middleware. Red Hat 

also offers support, training and 

consulting services to its customers 



Tel: 022-39878888 



Hardware & Networking 

Xenitis Technolab Pvt Ltd 

Xenitis TechnoLab is the first of its 
kind, state-of-the-art infrastructure, 
Hardware, Networking and 
IT Security training institution 
headquartered in Kolkata. 
TechnoLab is the training division 
of Xenitis group of Companies. It 
is the proud owner of Aamar PC, 
the most popular Desktop brand 
of Eastern India. These ranges of 
PC's are sold in the west under 
the brand name of Aamchi PC, in 
the north as Aapna PC and in the 
south as 'Namma PC. 

Tel: 033-22893280 

IT Infrastructure Solutions 

Absolut Info Systems Pvt Ltd 

Open Source Solutions Provider. 
Red Hat Ready Business Partner. 
Mail Servers/Anti-spam/GUI 
interface/Encryption, Clustering & 
Load Balancing - SAP/Oracle/Web/ 
Thin Clients, Network and Host 
Monitoring, Security Consulting, 
Solutions, Staffing and Support. 
New Delhi 

Tel: +91 -11 -26494549 
Mobile: +91-9873839960 

110 | JUNE 2009 | LINUX FOR YOU | 


The best place for you to buy and sell FOSS products and services 

To advertise in this section, please contact: 
Dhiraj (Delhi) 09811206582, Somaiah (Bangalore) 09986075717 

Advent Infotech Pvt Ltd 

Advent has an experienced techno- 
marketing team with several years of 
experience in Networking & Telecom 
business, and is already making 
difference in market place. ADVENT 
qualifies more as Value Added 
Networking Solution Company, we 
offers much to customers than just 
Routers, Switches, VOIP, Network 
Management Software, Wireless 
Solutions, Media Conversion, etc. 
New Delhi 

Tel: 46760000, 0931 11 6641 2 
Email: marketingsupport© 

Asset Infotech Ltd 

We are an IT solution and training 
company with an experience of 1 4 
years, we are ISO 9001 : 2000. We 
are partners for RedHat, Microsoft, 
Oracle and all Major software 
companies. We expertise in legal 
software ans solutions. 

Tel: 0135-2715965, Mobile: 09412052104 

BakBone Software Inc. 

BakBone Software Inc. delivers 
complexity-reducing data protection 
technologies, including award- 
winning Linux solutions; proven 
Solaris products; and application- 
focused Windows offerings that 
reliably protect MS SQL, Oracle, 
Exchange, MySQL and other 
business critical applications. 
New Delhi 
Tel: 01 1-422351 56 

Clover Infotech Private Limited 

Clover Infotech is a leading 
technology services and solutions 
provider. Our expertise lies in 
supporting technology products 
related to Application, Database, 
Middleware and Infrastructure. We 
enable our clients to optimize their 
business through a combination of 
best industry practices, standard 
processes and customized client 
engagement models. Our core 
services include Technology 
Consulting, Managed Services and 
Application Development Services. 
Tel: 022-2287 0659, Fax: 022-2288 1318 

Mobile: +91 99306 48405 



Duckback Information Systems 
Pvt Ltd 

A software house in Eastern India. 

Business partner of Microsoft, 

Oracle, IBM, Citrix , Adobe, Redhat, 

Novell, Symantec, Mcafee, Computer 

Associates, Veritas , Sonic Wall 


Tel: 033-22835069, 9830048632 




HBS System Pvt Ltd 

System Integrators & Service 

Provider. Partner of IBM, DELL, HP, 

Sun, Microsoft, Redhat, Trend Micro, 

Symentic Partners of SUN for their 

new startup E-commerce initiative 

Solution Provider on REDHAT, 


New Delhi 

Tel: 01 1 -257671 1 7, 25826801 /02/03 

Fax: 25861428 



Business Open Source 

Ingres Corporation 

Ingres Corporation is a leading 
provider of open source database 
software and support services. 
Ingres powers customer success 
by reducing costs through highly 
innovative products that are hallmarks 
of an open source deployment and 
uniquely designed for business critical 
applications. Ingres supports its 
customers with a vibrant community 
and world class support, globally. 
Based in Redwood City, California, 
Ingres has major development, sales, 
and support centers throughout 
the world, and more than 1 0,000 
customers in the United States and 
New Delhi 

Tel: 011-40514199, Fax: +91 22 66459537 

Keen & Able Computers Pvt Ltd 

Open Source Solutions Provider. 
Red Hat Ready Business Partner. 
Mail Servers/Anti-spam/GUI 
interface/Encryption, Clustering & 
Load Balancing - SAP/Oracle/Web/ 
Thin Clients, Network and Host 
Monitoring, Security Consulting, 
Solutions, Staffing and Support. 

Tel: 011-30880046, 30880047 
Mobile: 09810477448, 09891074905 

LDS Infotech Pvt Ltd 

Is the authorised partner for RedHat 

Linux, Microsoft, Adobe, Symantec, 

Oracle, IBM, Corel etc. Sofh/vare 

Services Offered: •Collaborative 

Solutions • Network Architecture 

•Security Solutions 'Disaster Recovery 

•Software Licensing 'Antivirus Solutions. 


Tel: 022-26849192 



Pacer Automation Pvt Ltd 

Pacer is leading providers of IT 
Infrastructure Solutions. We are 
partners of HP, Redhat, Cisco, 
Vwmare, Microsoft and Symantec. Our 
core expertise exists in, Consulting, 
building and Maintaining the Complete 
IT Infrastructure. 

Tel: 080-42823000, Fax: 080-42823003 



Red Hat India Pvt Ltd 

Red Hat is the world's leading 
open source solutions provider. 
Red Hat provides high-quality, 
affordable technology with its 
operating system platform, Red 
Hat Enterprise Linux, together with 
applications, management and 
Services Oriented Architecture (SOA) 
solutions, including JBoss Enterprise 
Middleware. Red Hat also offers 
support, training and consulting 
services to its customers worldwide. 

Tel: 022-39878888 

Srijan Technologies Pvt Ltd 

Srijan is an IT consulting company 
engaged in designing and 
building web applications, and IT 
infrastructure systems using open 
source software. 
New Delhi 

Tel: 01 1 -26225926, Fax: 01 1 -41 608543 


A company focussed on Enterprise 
Solution using opensource software. 
Key Solutions: 

• Enterprise Email Solution 

• Internet Security and Access 

• Managed Services for Email 


Tel: 022-66338900; Extn. 324 
Web: www. 

Tetra Information Services Pvt Ltd 

One of the leading open source 
provders. Our cost effective business 
ready solutions caters of all kind of 
industry verticles. 
New Delhi 

Tel: 01 1 -46571 31 3, Fax: 01 1 -41 6201 71 

Tux Technologies 

Tux Technologies provides 
consulting and solutions based on 
Linux and Open Source software. 
Focus areas include migration, mail 
servers, virus and spam filtering, 
clustering, firewalls, proxy servers, 
VPNs, server optimization. 
New Delhi 

Tel: 011-27348104, Mobile: 09212098104 

Veeras Infotek Private Limited 

An organization providing solutions 

in the domains of Infrastructure 

Integration, Information Integrity, 

Business Applications and 

Professional Services. 


Tel: 044-42210000, Fax: 28144986 



Want to register 
your organisation in 

FOSS Yellow Pages 


CALL: DHIRAJ (DELHI) 0981 1206582 
SOMAIAH (BANGALORE) 09986075717 

\r for limited period. | LINUX FOR YOU | JUNE 2009 | 111 


The best place for you to buy and sell FOSS products and services 

To advertise in this section, please contact: 
Dhiraj (Delhi) 09811206582, Somaiah (Bangalore) 09986075717 

Linux-Based Web-Hosting 

Manas Hosting 

ManasHosting is a Bangalore- 
based company that is dedicated in 
helping small and midsize business 
companies to reach customers 
online. We believe that by creating 
a website, all you have is just web 
presence; but to get effective 
traffic on your website, it is equally 
important to have a well designed 
one. This is why we provide the best 
of Web Hosting and Web Designing 
services. Also, our services are 
backed with exceptionally good 
quality and low costs 
Tel: 080-42400300 

Linux Desktop 

Indserve Infotech Pvt Ltd 

OpenLx Linux with Kalcutate 
(Financial Accounting & Inventory 
on Linux) offers a complete 
Linux Desktop for SME users. 
Its affordable (Rs. 500 + tax as 
special scheme), Friendly (Graphical 
Userlnterface) and Secure (Virus 
free) . 
New Delhi 

Tel: 01 1 -2601 4670-71 , Fax: 2601 4672 

Linux Experts 

Intaglio Solutions 

We are the training and testing 
partners of RedHat and the first to 
conduct RHCSS exam in delhi for the 
first time ever. 
New Delhi 

Tel: 011-41582917, 45515795 

Linux Vendor/Distributors 

GT Enterprises 

Authorized distributors for Red 
Hat and JBoss range of products. 
We also represent various OS's 
Applications and Developer Tools like 
SUSE, VMWare, Nokia Qt, MySQL, 
Codeweavers, Ingres, Sybase, 
Zimbra, Zend-A PHP Company, 
High Performance Computing 

Solutions from The Portland Group, 
Absoft, Pathscale/Qlogic and 
Intel Compilers, Scalix-Messaging 
solution on Linux Platform. 

Mobile: +91-9845009939, +91-9343861758 
Email : 


Contact us for any Linux Distribution 

at reasonable rates. Members get 

additional discounts and Free CD/ 

DVDs with each purchase. Visit our 

website for product and membership 



Mobile: 09869459928, 09892697824 



Software Subscriptions 

Blue Chip Computers 

Available Red Hat Enterprise Linux, 
Suse Linux Enterprise Server / 
Desktop, JBoss, Oracle, ARCserve 
Backup, Antivirus for Linux, Verisign/ 
Thawte/GeoTrust SSL Certificates and 
many other original software licenses. 

Tel: 022-25001812, Mobile: 09821097238 

Software Development 

Carizen Software (P) Ltd 

Carizen's flagship product is 

Rainmail Intranet Server, a complete 

integrated software product 

consisting modules like mail sever, 

proxy server, gateway anti-virus 

scanner, anti-spam, groupware, 

bandwidth aggregator & manager, 

firewall, chat server and fax server. 



Tel: 044-24958222, 8228, 9296 



DeepRoot Linux Pvt Ltd 

DeepRoot Linux is a seven year 

old GNU/Linux and Free Software 

company based in Bangalore. We 

develop Free Software products that 

are quick-to-deploy and easy-to-use. 


Tel: 080-40890000 





InfoAxon Technologies Ltd 

InfoAxon designs, develops and 

supports enterprise solutions stacks 

leveraging open standards and open 

source technologies. InfoAxon's 

focus areas are Business Intelligence, 

CRM, Content & Knowledge 

Management and e-Learning. 


Tel: 0120-4350040, Mobile: 09810425760 



Integra Micro Software Services (P) 

Integra focuses on providing 
professional services for software 
development and IP generation 
to customers. Integra has a major 
practice in offering Telecom Services 
and works for Telecom companies, 
Device Manufacturers, Networking 
companies, Semiconductor and 
Application development companies 
across the globe. 

Tel: 080-28565801/05, Fax: 080-28565800 
Web: Pvt Ltd is your one-stop, total 

web site support organisation. We 

provide high-quality website services 

and web based software support to 

any kind of websites, irrespective of 

the domain or the industry segments. 


Tel: 080-41 15 2929 



Unistal Systems Pvt Ltd 

Unistal is pioneer in Data Recovery 
Software & Services. Also Unistal is 
national sales & support partner for 
BitDefender Antivirus products. 
New Delhi 

Tel: 01 1 -26288583, Fax: 01 1 -2621 9396 

Software and Web 

Bean eArchitect Integrated Services 
Pvt Ltd 

Application Development, Web 

Design, SEO, Web Marketing, Web 


Navi Mumbai 

Tel: 022-27821617, Mobile: 9820156561 




Mr Site Takeaway Website Pvt Ltd 

Our product is a unique concept in 
India usingwhich a person without 
having any technical knowledge can 
create his website within 1 hour; we 
also have a Customer Care Center 
in India for any kind ofafter sales 
help. We are already selling it world 
over with over 65,000 copiessold. 
It comes with FREE Domain Name, 
Web Hosting and Customer Care 
Center forFree Support via Phone 
and Email and features like PayPal 
Shopping Cart, Guestbook, Photo 
Gallery, Contact Form, Forums, 
Blogs and many more. The price 
ofcomplete package is just Rs 
2,999 per year. 

Mobile: 91-9780531682 

Salah Software 

We are specialized in developing 
custom strategic software solutions 
using our solid foundation on 
focused industry domains and 
technologies.Also providing superior 
Solution Edge to our Clients to 
enable them to gain a competitive 
edge and maximize their Return on 
Investments (ROI). 
New Delhi 

Tel: 011-41648668, 66091565 

Want to register your organisation in 

FOSS Yellow Pages 


CALL: DHIRAJ (DELHI) 0981 1206582 
SOMAIAH (BANGALORE) 09986075717 

*Offer for limited period. 

To advertise in this section, 
please contact 

Somaiah (B'lore: 

09986075717) Dhiraj (Delhi: 

09811206582) on 

011-2681-0602 Extn. 222 

112 | JUNE 2009 | LINUX FOR YOU | 


The best place for you to buy and sell FOSS products and services 

To advertise in this section, please contact: 
Dhiraj (Delhi) 09811206582, Somaiah (Bangalore) 09986075717 

Thin Client Solutions 

Digital Waves 

The 'System Integration' business 
unit offers end-to-end Solutions on 
Desktops, Servers, Workstations, 
HPC Clusters, Render Farms, 
Networking, Security/Surveillance 
& Enterprise Storage. With our 
own POWER-X branded range 
of Products, we offer complete 
Solutions for Animation, HPC 
Clusters, Storage & Thin-Client 
Mobile: 0988071 5253 

Enjay Network Solutions 

Gujarat based ThinClient Solution 
Provider. Providing Small Size 
ThinClient PCs & a Full Featured 
ThinClient OS to perfectly suite needs 
of different working environment. 
Active Dealer Channel all over India. 

Tel.: 0260-3203400, 3241732, 3251732, 
Mobile: 09377107650, 09898007650 

Training for Corporate 

Bascom Bridge 

Bascom Bridge is Red Hat Certified 

partner for Enterprise Linux 5 and also 

providing training to the individuals 

and corporate on other open source 

technologies like PHP, MySQL etc. 


Tel: 079-27545455—66 

Fax: 079-27545488 





Tel: 033-40076450 



Centre for Excellence in Telecom 
Technology and Management 

MTNL's Centre for Excellence 
in Telecom Technology and 
Management (CE^M) is a state of 
the art facility to impart Technical, 
Managerial and corporate training to 
Telecom; Management personnel. 
CF^M has AC lecture halls, 
computer Labs and residential facility. 

Tel: 022-25714500, 25714586, 25714585, 


Fax: 022-25706700 



Complete Open Source Solutions 

RHCT RHCE and RHCSS training. 


Tel: 040-66773365, 9849742065 




Redhat Linux and open source 

solution , RHCE, RHCSS training 

and exam center.Ahmedabad and 



Tel: 079-40027898 

Email: electromech@electromech. info 


Focuz Infotech 

Focuz Infotech Advanced Education 

is the quality symbol of high-end 

Advanced Technology Education in 

the state. We are providing excellent 

services on Linux Technology 

Training, Certifications and live 

projects to students and corporates, 

since 2000. 


Tel: 0484-2335324 



G-TEC Computer Education 

ISO 9001:2000 certified IT 
Company, International Testing 
Centre, Specialised in Multimedia 
& Animation, conduct MCP, 
MCSE 2000, MCDBA and MCSA 
certificates, CCNA, CCNP, the Only 
authorized centre by INTERNATIONAL 
UNION to conduct ICDL, Adobe 
Certifications, training on Web 
Designing, Tally, Spoken English. 
Conducts Corporate and institutional 
training. International certifications 
Tel: 080-43567000 

Gujarat Infotech Ltd 

GIL is a IT compnay and 1 7 years of 

expericence in computer training field. 

We have experience and certified 

faculty for the open Source courses 

like Redhat, Ubantoo.and PHP, Mysql 


Tel: 079-27452276, Fax: 27414250 


Lynus Academy Pvt Ltd 

India's premier Linux and OSS 

training institute. 


Tel: 044-42171278, 9840880558 



Linux Learning Centre Private Limited 

Pioneers in training on Linux 



Tel:080-22428538, 26600839 



Maze Net Solutions (P) Ltd 

Maze Net Solution (P) Ltd, is a pioneer 
in providing solutions through on 
time, quality deliverables in the fields 
of BPO, Software and Networking, 
while providing outstanding training 
to aspiring IT Professionals and Call 
Center Executives. Backed by a team 
of professional workforce and global 
alliances, our prime objective is to offer 
the best blend of technologies in the 
spheres of Information Technology (IT) 
and Information Technology Enabled 
Services (ITES). 

Tel: 044-45582525 

Netweb Technologies 

Simplified and scalable storage 



Tel: 080-41146565, 32719516 



New Horizons India Ltd 

New Horizons India Ltd, a joint 
venture of New Horizons Worldwide, 
Inc. (NASDAQ: NEWH) and the 
Shriram group, is an Indian company 
operational since 2002 with a global 
foot print engaged in the business 
of knowledge delivery through 
acquiring, creating, developing, 
managing, lending and licensing 
knowledge in the areas of IT, Applied 
Learning. Technology Services and 
Supplementary Education. The 
company has pan India presence 
with 1 5 offices and employs 750 
New Delhi 
Tel: 01 1-4361 2400 


Network NUTS 

India's only Networking Institute 
by Corporate Trainers. Providing 
Corporate and Open classes 
for RHCE / RHCSS training and 
certification. Conducted 250+ Red 
Hat exams with 95% result in last 9 
months. The BEST in APAC. 
New Delhi 
Tel: 46526980-2 

Mobile: 0931 0024503, 0931 241 1 592 

STG International Ltd 

An IT Training and Solution 

Company.Over an experience of 

1 4years.We are ISO 9001 :2000 

Certified. Authorised Training Partners 

of Red Hat & IBM-CBS. We cover all 

Software Trainings. 

New Delhi 

Tel: 011-40560941-42, Mobile: 








□ Consultants 

□ Consultant (Firm) 

□ Embedded Solutions 

□ Enterprise Communication 

□ High Performance Computing 

□ IT Infrastructure Solutions 

□ Linux- based Web- hosting 

□ Mobile Solutions 

□ Software Development | LINUX FOR YOU | JUNE 2009 | 113 


The best place for you to buy and sell FOSS products and services 

To advertise in this section, please contact: 
Dhiraj (Delhi) 09811206582, Somaiah (Bangalore) 09986075717 

TNS Institute of Information 
Technology Pvt Ltd 

Join RedHat training and get 

1 00% job gaurantee. World's most 

respected Linux certification. After 

RedHat training, you are ready to join 

as a Linux Administrator or Network 


New Delhi 

Tel: 01 1-30851 00, Fax: 30851 103 



Webel Informatics Ltd 

Webel Informatics Ltd (WIL), a 
Government of West Bengal 
Undertaking. WIL is Red Hat Training 
Partner and CISCO Regional 
Networking Academy. WIL conducts 
RHCE, RHCSS, CCNA, Hardware 
and Software courses. 

Tel: 033-22833568, Mobile: 094331 11110 

Training for Professionals 


AEM is the Best Certified Redhat 

Training Partner in Eastern India since 

last 3 years. AEM conducted more 

than 500 RHCE exams with 95- 

1 00% pass rate. Other courses— 



Tel: 033-25488736, Mobile: 09830075018 



Agam Institute of Technology 

In Agam Institute of Technology, we 
provide hardware and networking 
training since last 10 years. We 
specialise in open source operating 
systems like Red Hat Linux since we 
are their preferred training partners. 

Tel: 0135-2673712, Mobile: 09760099050 

Amritha Institute of Computer 

Amrita Technologies provides 
an extensive training in high end 
certification programs and Networking 
Solutions like Redhat Linux, Redhat 
Security Services, Cisco, Sun Solaris, 
Cyber Security Program IBM AIX and 
so on with a strong focus on quality 
standards and proven technology 
processes with most profound 
principles of Love and Selfless Service. 

Mobile: 09393733174 

Centre For Industrial Research and 
Staff Performance 

A Unique Institute catering to the 

need for industries as well as 

Students for trainings on IT, CISCO 

certification, PLC, VLSI, ACAD, 

Pneumatics, Behavior Science and 



Tel: 0755-2661412, 2661559 

Fax: 0755-4220022 



Center for Open Source Development 
And Research 

Linux, open source & embedded 
system training institute and 
development. All trainings provided by 
experienced exports & administrators 
only. Quality training (corporate and 
individual). We expertise in open 
source solution. Our cost effective 
business ready solutions caters of all 
kind of industry verticals. 
New Delhi 

Mobile: 09312506496 

Cisconet Infotech (P) Ltd 

Authorised Red Hat Study cum Exam 

Centre. Courses Offered: RHCE, 



Tel: 033-25395508, Mobile: 09831705913 



CMS Computer Institute 

Red Hat Training partner with 3 Red 
Hat Certified Faculties, Cisco Certified 

(CCNP) Faculty , 3 Microsoft Certified 

Faculties having state Of The Art IT 

Infrastructure Flexible Batch Timings 

Available.. Leading Networking 

Institute in Marathwada 


Tel: 0240-3299509, 6621 775 



Cyber Max Technologies 

OSS Solution Provider, Red Hat 
Training Partners, Oracle.Web, Thin 
Clients, Networking and Security 
Consultancy. Also available CCNA 
and Oracle Training on Linux. Also 
available Laptops & PCs 

Tel: 0151-2202105, Mobile: 09928173269 

Disha Institute 

A franchisee of Unisoft Technologies, 

Providing IT Training & Computer 

Hardware & Networking 


Tel: 3208054, 09897168902 



EON Infotech Limited (TECHNOSchool) 

TechnoSchool is the most happening 
Training Centre for Red Hat (Linux- 
Open Source) in the Northern Region. 
We are fully aware of the Industry's 
requirement as our Consultants are 
from Linux industry. We are committed 
to make you a total industry ready 
individual so that your dreams of a 
professional career are fulfilled. 

Tel: 0172-5067566-67, 2609849 


The best place for you to buy and 
sell FOSS products and services 

GT Computer Hardware Engineering 
College (P) Ltd 

Imparting training on Computer 

Hardware Networking, Mobile 

Phone Maintenance & International 



Tel: 0141-3213378 



HCL Career Development Centre 

As the fountainhead of the most 

significant pursuit of human mind (IT), 

HCL strongly believes, "Only a Leader 

can transform you into a Leader". 

HCL CDC is a formalization of this 

experience and credo which has 

been perfected over three decades. 


Tel: 0755-4094852 



IINZTRIXE Technologies Pvt Ltd 

No. 1 Training prvinder in this region. 


Tel: 0121-4020111, 4020222 

Mobile: 09927666664 



Indian Institute of Job Oriented 

Training Centre 


Tel: 079-40072244—2255—2266 

Mobile: 09898749595 



Institute of Advance Network 
Technology (IANT) 

•Hardware Engg. 'Networking 

•Software Engg. •Multimedia 



Tel: 079-32516577, 26607739 

Fax: 079-26607739 

Email: contact © 



Bridging Gap with professionals. 


Tel: 0522-3919496 



Koenig Solutions (P) Ltd 

A reputed training provider in India. 
Authorised training partner of Red 
Hat, Novell and Linux Professional 
Institute. Offering training for RHCE, 

114 | JUNE 2009 | LINUX FOR YOU | 


The best place for you to buy and sell FOSS products and services 

To advertise in this section, please contact: 
Dhiraj (Delhi) 09811206582, Somaiah (Bangalore) 09986075717 

RHCSS, CLP, CLE, LPI - 1 & 2. 
New Delhi 

Mobile: 09910710143, Fax: 011-25886909 


We are Providing Training of LINUX to 

Professional & Cooperate. 


Tel: 0121-2420587, Mobile: 9997526668 



NACS Infosystems (P) Ltd 

NACS is a organization which is 

providing training for all international 

certification, and also NACS is the 

authorized Training Partner of Redhat 

and also having testing centre 




Tel: 01 21 -2767756, Fax: 01 21 -4006551 

Mobile: 09897796603, 


Netdiox Computing Systems 

We are one-of-a-kind center for 
excellence and finishing school 
focusing on ground breaking 
technology development around 
distributed systems, networks, 
storage networks, virtual isation and 
fundamental algorithms optimized for 
various appliance. 
Tel: 080-26640708 
Mobile: 09740846885 


Training Partner of RedHat, Cisco 


Tel: 0172-2608351, 3916555 



To advertise in this section, 
please contact 

Somaiah (B'lore: 

09986075717) Dhiraj (Delhi: 

09811206582) on 

011-2681-0602 Extn. 222 


Netxprt institute of Advance 

Netxprt Noida is a Leading 
organization to provide Open Source 
training on RedHat Linux RHCT and 
RHCE Training with 30Hrs. extra 
exam preparation module. 

Tel: 0120-4346847, Mobile: 09268829812 

Netzone Infotech Services Pvt Ltd 

Special batches for MCSE, CCNA 
and RHCE on RHEL 5 with exam 
prep module on fully equipped labs 
including IBM servers, 20+ routers 
and switches etc. Weekend batches 
are also available. 
New Delhi 

Tel: 01 1 -4601 5674, Mobile: 921 21 1 421 1 

Neuron IT Solutions 

We offer end to end services and 

support to implement and manage 

your IT Infrastructure needs. We 

also offer Consulting services 

and Training in Advanced Linux 



Mobile: 09790964948 



Plexus Software Security Systems 
Pvt Ltd 

Plexus, incorporated in January 
2003 is successfully emerged as 
one of the best IT Company for 
Networking, Messaging & Security 
Solutions and Security Training. 
Networking, Messaging & Security 
solutions is coupled with the 
expertise of its training; this has 
put Plexus in the unique position 
of deriving synergies between 
Networking, Messaging & Security 
Solutions and IT Training. 

Tel: 044-2433 7355 

Professional Group of Education 

RHCE & RHCSS Certifications 


Tel: 0761 -4039376, 

Mobile: 09425152831 


Q-S0FT Systems & Solutions Pvt Ltd 

Q-SOFT is in a unique position for 

providing technical training required 

to become a Linux Administration 

under one roof. Since inception, the 

commitment of Q-SOFT towards 

training is outstanding. We Train on 

Sun Solaris, Suse Linux & Redhat 



Tel: 080-26639207, 26544135, 22440507 

Mobile: +91 9945 282834 



Software Technology Network 

STN is one of the most 

acknowledged name in Software 

Development and Training. Apart 

from providing Software Solutions 

to various companies, STN is also 

involved in imparting High-end project 

based training to students of MCA 

and B.Tech etc. of various institutes. 


Tel: 0172-5086829 



South Delhi Computer Centre 

SDCC is for providing technical 

training courses (software, hardware, 

networking, graphics) with career 

courses like DOEACC "O" and "A" 

Level and B.Sc(IT)MSc(IT)MTech(IT) 



New Delhi 

Tel: 01 1 -261 83327, Fax: 01 1 -261 43642 

Email: southdelhicomputercentre@gmail. 

com, southdelhicomputercentre@hotmail. 



Ssytems Quest 

Making Tomorrow's professionals 



Tel: 080-41301814 



Trimax FuturePerfect 

A Div of Trimax IT Infrastructure and 

Services Limited. Redhat RHCE, 

RHCT Training & Exam Center, 


CCNP, Prometric Center. 


Tel: 022-40681313, Mobile: 09987705638 




Vibrant e Technologies Ltd 

Vibrant e Technologies Ltd. Is a 

authorised Red Hat Test and Testing 

Centre, has won the prestigious 



for Western region. Vibrant offers 

courses for RHCE 5, RHCSS etc. 


Tel: 022-26285066/6701 



Ultramax Infonet Technilogies Pvt Ltd 

Training in IT related courses 

adn authorised testing center of 

Prometric, Vue and Red Hat. 


Tel: 022-67669217 



Yash Infotech 

Authorized Training & Exam Center. 
Best Performing Center in Lucknow 
for RH Training and Examinations. 
LINUX & Open Source training 
institute for IT professionals & 
Corporate Offering Quality Training for 
RHCE, RHCSS, PHP, Shell Script, 
Virtualization and Troubleshooting 
Techniques & Tools. 

Tel: 0522-4043386, Fax: 0522-4043386 

Web Hosting 

Perfect Innovation 

Web Hosting Spider 

• Web Hosting • Web Design 

• Web Application Development 

• SMS Hosting • Corporate Hosting 

• Dedicated Servers 

Tel: 0413-3202726, 3246999 



Want to re 
your organisation in 

FOSS Yellow Pages 


CALL: DHIRAJ (DELHI) 0981 1206582 
SOMAIAH (BANGALORE) 09986075717 

*Offer for limited period. | LINUX FOR YOU | JUNE 2009 | 115 



Centre4ei has joined top most Embedded systems companies and the department of 
Telecommunication and Electronics of various Engineering colleges worldwide organize 
"embedasia-2009"- an International conference for embedded systems in the telecom domain. 
"embedasia-2009" is scheduled to be held on 18th & 19th of June 2009 at NSc Bangalore, This 
conference will give companies an opportunity to show case their products and solutions in a 
forum which is unique - as no other conference in India is dedicated to Embedded systems 
applications in Telecom. 

Embedasia-2009 will attract a highly qualified international trade public to India through a number of communication measures tailored to 
target Companies. This is an opportunity to utilize the conference as a meaningful and result oriented event for benefiting your company. We expect 
over 500 professionals to participate in the Conferences as delegates. There will be facilities to conduct business discussions with other interested 
companies on collaborations, joint ventures etc. There will also be a Venture Capitalist Forum where VCs will talk about their investment priorities and 
budding entrepreneurs can engage with them. 


Explore at embedasia 2009 

► The aim of the conference is to bring together on a single platform, the industry, students, researchers and other individuals to 
discuss the modern trends of embedded systems in telecom domain. 

► Provide business and technical information on Embedded System on Telecom domain. 

► Developing new business & increasing current business initiatives. 

► Represent the proffession of electrical, electronic, manufacturing and systems engineering and related sciences. 

► Act as the voice of the profession in matters of public concern and assist Government to make the public aware of technological 

• CEOs & Strategic Planners from the IT. 

• CTOsandVPR&D. 

• Entrepreneurs. 

• Telecom Operators. 

• Executives from Venture capital funds. 

• Governmnt Planners, regulators and promoters of 
these industries. 

• Research Scientist and Engineers in IT and 

• Consultants and Analysts. 

Don't miss your opportunity to participate in the 
strongest and most focused conference and exposition 
opportunity of the year at embedasia-2009 . More than 
500 attendees are expected at embedasia - 2009 with 
abundant opportunities to boost your bussiness, learn 
about the current trend and future directions of 
technologies and network with proffessionals focused 
on embedded 

Delegates Fees 

SI. No. 




General Category 





Rate INR 

1 ,000+Tax 

Topics for the conference are given below: 

■ Mobile wireless Applications and Solutions: 
Understanding and appreciating the emerging 

■ How to create applications with a high level of re- 
usability and adaptability for mobile phones. 

■ Patenting trends in WIMAX Technology. 

■ Real Time Operating Systems & Kernels. 

■ Telecom Networks & Applications Embedded 

■ Automated Testing Using Tools for mobile & 
Wireless applications. 

■ Development Environments, Tools & Testing for 
Embedded S/W. 

■ Wireless Networks & Applications Embedded 

For more details please login: 

embedasia 2009 

An International Conference on 

Embedded System 


Date: 18th & 19th of June 2009 


Media Partner 

embedasia 2009 

An International Conference on 

Embedded System 

Date: 28th & 29th of August 2009 

Organized By: 

#635/B, 2nd Floor, Dr. Rajkumar Road, 2nd Stage, Rajajinagar, Bangalore 560010 

Ph: 080-65301070, 41616824 Mobile: +91- 9342333332, 9590000032 E-Mail id: 

116 | JUNE 2009 | LINUX FOR YOU | 



Thank You IIT Madras 

It was in your hostel room 
that the idea was conceived 

The first issue in Jan '69 

The Dec '08 Issue 

Celebrating 40 years in TECH media 

B Magazines E Portals B Directories B Events 

Electronics For You Electronics Annual Guide EFY Awards 

LINUX for You 



Facts For You 

Electronic Bazaar 

Educational Directory 

Open Source India 
EduTech Expo 

EFY Enterprises Pvt Ltd 

D-87/1, Okhla Industrial Area, Phase-1, New Delhi-110020 

Phone: +91-011-26810601/02/03 

Email: Website: 

R N I No.DELENG/2003/9889, Mailed on 1/2nd of the month Delhi Postal Read. No. DL(S)-01/3001/2009-1 1 

Published on 28th of the previous month Licenced to Post without Pre-PaymenfLicence No. U(SE)-64/2009-1 1 



13-14 June, 09. Pragati Maidan, New Delhi 




Demonstrate the state-of-the-art technology to 
thousands of educational & training institutes 

Mobiles for distance education. Digitisation of curriculum. Innovative teaching aids. 
Video-conferencing powered classes. State-of-the-art audio & video equipment. 
Labs that power innovation and R&D... 

...pretty exciting stuff — isn't it? But are these technologies really beneficial for educational institutions in India? 
Have these been implemented by any of the institutions here? If yes, how's been the experience? 
Most importantly, are these technologies worth the effort and investment? 

These are some of the questions that will be addressed at Tech@Edu — a unique event aimed at showcasing the latest 
technologies that promise to benefit the Indian education sector. You will get to hear technology experts from the leading tech 
firms. Plus, there will be 'early adopters' from academia who will share their 'gyaan' based on their personal experiences. 

Workshops h Seminars 

State-of-the-art Labs 

Audio & Video Systems 

Simpler Management, Thanks to IT Solutions 

Hi-tech Teaching Aids 

e-Learning: Today & Tomorrow 

Harnessing the Web and the Mobile 

Open Source Powered Education 

Visiting Institutions 

• Schools 

• Colleges 

• Engineering institutions 

• BBA/MBA colleges 

• Education Trusts 

• Education boards 
and societies 

• Training institutions 

• Examination bodies 

• Government bodies 

Visitor Profile 

• Chairmen & Directors 

• Senior faculty 

• Head of departments 

• Professors 

• Lecturers 

• Teachers 

• Purchase Heads 

• Trustees 

• Principals 

• Deans 


For speaker slots: Vandana Sharma - 9810295045 For Booth/Sponsorship: Devendra Kumar - 9810143735 CC VJT* ROI I P 

email: email: "■ ■ V5-4I j-i Vlj 

EFY Enterprises Pvt Ltd, D-87/1, Okhla Industrial Area, Phase 1, New Delhi 110 020 Ph: 011-26810601-03; Fax: 011-26817563